欢迎使用CSDN-markdown编辑器

来源:互联网 发布:殷保华一线法源码 编辑:程序博客网 时间:2024/06/04 22:46

1 通过startService
 Service会经历 onCreate -> onStart
 stopService的时候直接onDestroy
 如果是调用者自己直接退出而没有调用stopService的话,Service会一直在后台运行。下次调用者再起来可以stopService。

2 通过bindService
 Service只会运行onCreate, 这个时候服务的调用者和服务绑定在一起
 调用者退出了,Service就会调用onUnbind->onDestroyed,所谓绑定在一起就共存亡了。并且这种方式还可以使得调用方(例如)调用服务上的其他的方法
bindService这种方式启动,在手机上按Home键Activity是不会退出的,再次进来点击绑定也不会执行任何方法,他是不执行onStart的,但是要按back的话,Activity会直接退出,Service调用onUnbind–>onDestroy

startservice的生命周期
bindservice 生命周期
bindservice 生命周期
AIDL(android接口描述语言)是一个IDL语言,它可以生成一段代码,可以使在一个android设备上运行的两个进程使用内部通信进程进行交互。如果你需要在一个进程中(例如在一个Activity中)访问另一个进程中(例如一个Service)某个对象的方法,你就可以使用AIDL来生成这样的代码来伪装传递各种参数。

要使用AIDL,Service需要以aidl文件的方式提供服务接口,AIDL工具将生成一个相应的Java接口,并且在生成的服务接口中包含一个功能调用的stub服务桩类。Service的实现类需要去继承这个stub服务桩类。Service的onBind方法会返回实现类的对象,之后你就可以使用它了这里写图片描述

0 0