android 进程绑定,23_android绑定服务进程间(23_android binding service process).doc

23_android绑定服务进程间(23_android binding service process)

23_android绑定服务进程间(23_android binding service process)

【Android外部绑定服务】Android与服务进程间通信= =绑定服务进程间通信

服务是单例的当某个进程需要长时间的运行时需要放到服务中没有界面

服务本身不能开启必须手动开启

1、语境。startService(我);

访问者和服务之间没有联系,访问者退出,服务照样运行

1、若服务没有启动

onstartcommand() OnCreate -->

2、若服务已经启动

onstartcommand();

2、stopservice()上下文;

1、若服务没有启动

什么都不发生

2、若服务已经启动

ondestory();

2、bindService(绑定服务)上下文;

访问者和服务之间没有联系,访问者退出,服务也退出

进程之间的通信和进程内部的通信

2.1bindservice:

1。服务没有启动:

oncreate() ---> OnBind

2。服务已经绑定

无现象

2.2unbindservice

1。服务已经绑定:

onunbind() --> ondestroy()

2。服务没有绑定:

当服务完成后通知UI列表显示

绑定机制但是客户端退出后服务也退出了

不能被很多人绑定绑定只限于一客户端

如果很多个客户端要和这个服务交互可以在这个服务完成后

发布一个广播(广播用于在进程之间通信)活动来接收(注册一个接受人)响应广播

【服务端:】

1、MainActivity没东西

-----------------------------------------------------------------------------------------

2、提供服务类人的服务

-----------------------------------------------------------------------------------------

包cn.itcast.service3;

进口android.app.service;

进口ent;

进口android.os.ibinder;

进口android.os.remoteexception;

进口android.util.log;

/ * *

*进程间通信,使用绑定方法开启服务调用者和服务通过IBinder对象联系在一起

* /

类人的服务延伸服务{

/ * *

*绑定当服务连上以后会调用该方法

实现人的服务中的onBind()方法。返回IPerson存根对象。

* /

市民IBinder onBind(意图意图){

日志。我(“其他”、“人的服务的onBind方法”);

返回新的ipersonservice。stub() {

公共字符串sayHello(String name)抛出RemoteException {

日志。我(“其他”、“人的服务。sayhello() =“+姓名);

返回“hello”+名称;

}

公众人物findpersonbyname(String name)抛出RemoteException {

人P =新person();

(100)p.setid;

p.setname(名称);

(21)p.setage;

返回p;

}

};

}

oncreate() { public void

oncreate()超;

日志。我(“其他”、“人的服务。OnCreate”);

日志。我(“其他”、“人的服务。TID =”+线。currentthread()。getid());

}

“suppresswarnings(“贬低”)

public void onStart(意图意图,int startid){

超。onStart(意图,startid);

日志。我(“其他”、“人的服务。OnStart”);

}

ondestroy() { public void

ondestroy()超;

日志。我(“其他”、“人的服务。使用”);

}

/ /解除绑定

公共布尔onUnbind(意向书){

日志。我(“其他”、“人的服务。onUnbind”);

返回超级onUnbind(意向);

}

}

3、ipersonservice.aidl

-----------------------------------------------------------------------------------------

包cn.itcast.service3;

进口cn.itcast.service3.person;

接口ipersonservice {

字符串sayHello(字符串中的名称);

人findpersonbyname(字符串名称);

}

4、pe

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值