KKK

作者: 吴云龙_1ea8 | 来源:发表于2024-04-18 22:09 被阅读0次

好的,下面是一个稍微复杂一点的示例,它包括一个服务类和一个绑定服务的活动类。服务类中实现了一个简单的计数器功能,活动类可以通过绑定服务来获取计数器的当前值并对其进行操作。

**服务类(CounterService.java):**

```java

import android.app.Service;

import android.content.Intent;

import android.os.Binder;

import android.os.IBinder;

public class CounterService extends Service {

    private final IBinder binder = new CounterBinder();

    private int counter = 0;

    public class CounterBinder extends Binder {

        CounterService getService() {

            return CounterService.this;

        }

    }

    @Override

    public IBinder onBind(Intent intent) {

        return binder;

    }

    public int getCounter() {

        return counter;

    }

    public void incrementCounter() {

        counter++;

    }

    public void decrementCounter() {

        counter--;

    }

}

```

**活动类(MainActivity.java):**

```java

import android.content.ComponentName;

import android.content.Context;

import android.content.Intent;

import android.content.ServiceConnection;

import android.os.Bundle;

import android.os.IBinder;

import android.view.View;

import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    private CounterService counterService;

    private boolean isServiceBound = false;

    private ServiceConnection serviceConnection = new ServiceConnection() {

        @Override

        public void onServiceConnected(ComponentName name, IBinder service) {

            CounterService.CounterBinder binder = (CounterService.CounterBinder) service;

            counterService = binder.getService();

            isServiceBound = true;

        }

        @Override

        public void onServiceDisconnected(ComponentName name) {

            isServiceBound = false;

        }

    };

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

    }

    @Override

    protected void onStart() {

        super.onStart();

        Intent intent = new Intent(this, CounterService.class);

        bindService(intent, serviceConnection, Context.BIND_AUTO_CREATE);

    }

    @Override

    protected void onStop() {

        super.onStop();

        if (isServiceBound) {

            unbindService(serviceConnection);

            isServiceBound = false;

        }

    }

    public void onIncrementClicked(View view) {

        if (isServiceBound) {

            counterService.incrementCounter();

            updateCounterDisplay();

        }

    }

    public void onDecrementClicked(View view) {

        if (isServiceBound) {

            counterService.decrementCounter();

            updateCounterDisplay();

        }

    }

    private void updateCounterDisplay() {

        TextView counterTextView = findViewById(R.id.counter_text_view);

        counterTextView.setText(String.valueOf(counterService.getCounter()));

    }

}

```

在这个示例中,服务类(CounterService)实现了一个简单的计数器功能,并提供了绑定服务所需的 Binder 类。活动类(MainActivity)绑定了服务并实现了增加和减少计数器值的方法,并在界面上显示当前的计数器值。

相关文章

  • KKK

    KKK

  • KKK

    测试

  • KKK

    我想你

  • KKK

    八点

  • KKK

    TiDB.pingCAP Oceanbase 微信的paxosstore 链路很长,柔性 )对下游微服务的依赖用m...

  • KKK

  • KKK

    啦咯啦咯啦咯

  • kkk!

    咳咳...这阿殍,人帅不狗好勾搭!有时弧有点长(一般是我在看文的时候),圈不大,少混圈,人懒低产画还渣...现在主...

  • Kkk

    Ghhfddh

  • KKK

    多功能的clearfix 可以解决父子元素外边距重叠与高度塌陷<与低版本兼容> .clearfix:before ...

网友评论

      本文标题:KKK

      本文链接:https://www.haomeiwen.com/subject/ojuyxjtx.html