Android Service AIDL
来源:互联网 发布:中山大学软件工程 知乎 编辑:程序博客网 时间:2024/06/06 12:52
android中服务类似于windows操作系统中的服务,在后台运行。
一个不提供用户界面、长期在后台运行的一个组件。
其他组件启动了service之后 如果切换到其他程序此service继续运行。
可以通过一下两种方式运行:
一、使用startService开启,及时开启他的组件已经销毁、service仍可以在后台继续无期限的运行,但不会给调用者返回结果。
二、使用bindService绑定,可以调用service服务的操作,提供IPC操作,类似服务器、客户机模式,只能在绑定的组件运行时才能运行,当绑定的销毁了。
默认情况下service是运行在启动他的进程的线程里,是运行在主线程里的,继承IntentService是创建了一个新的工作线程。
声明周期回调方法:
一、onStartCommand() :使用startService()方法调用会回调此方法。
二、onBind() :使用bindService()方法调用会回调此方法。
三、onCreate() :第一次启动时被创建的时调用。如果已经运行将不在回调此方法。
四、onUnbind():通过bindService()客户端断开连接后回调此方法。
五、onDestroy() :服务停止后 service 销毁时回调。
如果是startService() 可以通过stopService() 或者stopSelf()来停止此服务,若不停止将尽可能一直在后台运行。
通过bindService()启动的服务,可以使用unbindService()来停止服务。
AIDL Android Interface Defined Language android接口定义语言,可以通过AIDL在不同应用之间调用服务。
可以创建一个.aidl后缀的文件,保存至项目src目录下,会自动生成与文件明同名的类接口文件。
在Service onBiild()里返回的IBinder对象继承此接口并返回IBinder对象。
调用bindService() 的onServiceConnected()参数中的IBinder对象就是该接口的实现类,使用IRemoteService.Stub.asInterface(service)可以转化成一个该接口的对象,可以直接调用里面的方法。
不同应用间通过IPC调用传递的对象需要实现Parcelable接口。
- Android Service 之 AIDL
- android aidl service
- Android Service AIDL
- Android AIDL创建Service
- Android Service AIDL
- Android:AIDL创建Service
- Android Service AIDL
- Android Service AIDL
- Android AIDL 远程service
- android service 和aidl
- Android AIDL 与 Service
- Android Service AIDL
- Android-service之aidl
- android: 通过AIDL使用SERVICE
- Android学习--Service之AIDL
- Android Service学习之AIDL
- Android-Service组件之AIDL
- android service binder 和AIDL
- This account is currently not available
- Android-PullToRefresh下拉刷新库基本用法
- SplashActivity页面 android:scaleType="centerCrop" 属性 用于 ImageView填满整个SplashActivity
- 语音服务器端内存泄露
- Java V01 20150107
- Android Service AIDL
- activity和fragment通过接口相互传值
- play framework 中使用线程 及 锁的问题
- 黑马程序员——高新技术---部分JDK1.5新特性及枚举--(冲刺复习知识补充)
- socket编程中相关数据结构
- ios7 ~~扫描
- 大数据,怎么搞?
- Linux 下socket超时(connect超时/recv超时)
- 战胜拖延症的利器—Sprint Backlog