Android开发中的活动和服务的绑定

服务服务是安卓中实现程序后台运行的解决方案,非常适合去执行那些不需要和用户交互的长期运行的任务。
服务的运行不依赖任何界面,即使程序切换到后台,或者是开启了另一个程序。服务人可以保持运作

不过需要注意的是,服务并不是运行在一个独立的进程中,而是依赖在创建服务是所在的应用程序的进程中

在安卓开发的过程中,我们尝试把活动和服务绑定在一起 ,从而达到我们想要实现的效果
让服务更好的提供一些功能上的服务,进行一些操作

我们首先创建一个服务
在这里插入图片描述
然后可以看到自动填充的代码

package com.example.testactivity;

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;

public class TestService extends Service {
    public TestService() {
    }

    @Override
    public IBinder onBind(Intent intent) {
        // TODO: Return the communication channel to the service.
        throw new UnsupportedOperationException("Not yet implemented");
    }
}

我们接下来现在界面上做一些工作

<Button
      android:id="@+id/Hold"
      android:layout_width="match_parent"
      android:layout_height="66dp"
      android:text="触发绑定消息"></Button>

我们添加一个按钮
之后给这个按钮绑定事件

 Button holdButton=findViewById(R.id.Hold);
        holdButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                MainServersBinder.StartToast();
            }
        });

里边的** MainServersBinder.StartToast();**我们在是忽略不看
上边的这些都是最最基础的操作

之后开始我们的绑定的操作

我先给出我的service类

package com.example.testactivity;

import android.app.Service;
import android.content.Intent;
import android.os.Binder;
import android.os.IBinder;
import android.widget.Toast;

public class TestService extends Service {
    public TestService() {
    }
    public class MyBinder2 extends Binder{
        public int TestAdd(int a,int b){
            return a+b;
        }
    }
    public MyBinder2 binder2=new MyBinder2();

    @Override
    public IBinder onBind(Intent intent) {
       return binder2;
    }
}

我的这里是用Service简单实现一个Add加法的实例

之后我们在主类中调用TestService.MyBinder2

private TestService.MyBinder2 TestBinder;
   private ServiceConnection connection=new ServiceConnection() {
       @Override
       public void onServiceConnected(ComponentName name, IBinder service) {
       		//绑定时的事件
           //MainServersBinder = (MainServers.MyBinder)service;
           TestBinder=(TestService.MyBinder2)service;
       }
       @Override
       public void onServiceDisconnected(ComponentName name) {
		//取消绑定时的事件
       }


		//下面的代码是在onCreate方法中加的 我没有给出里边所有的语句
        Button holdButton=findViewById(R.id.Hold);
        holdButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               // MainServersBinder.StartToast();
                int a=TestBinder.TestAdd(110,100);
                Toast.makeText(MainActivity.this,"所得结果为:"+a,Toast.LENGTH_SHORT).show();
            }
        });

        Intent intent = new Intent(this, TestService.class);
        //绑定服务
        bindService(intent,connection,BIND_AUTO_CREATE);

注意一定要添加下面的两句,不然程序会崩溃
在这里插入图片描述

以上就是Android中的活动和服务的绑定的方法
希望我所写的对大家有所帮助

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值