service

1.被一个组件经过startService()启动,运行在UI线程的后台。有两种状态:1.未绑定状态:开启后,一直运行在后台,除非本身中止本身或在某些状况下被系统回收(应该在任务完成后本身关闭)2.绑定状态:经过bindService()进入绑定状态,此时能够与组件进行通讯(也能够是进程间通讯),能够被多个组件绑定,当绑定的全部组件销毁会(组件销毁时,仍是解绑时?),service自动销毁。android


2.服务能够以上两种状态同时存在线程

3.任何组件均可以用这个service,就像用activity同样,即使是其余程序中的组件。固然也能够把service设为私有,只有本应用可访问。
对象

4.若服务中进行耗时操做,必须在服务中另外开启一个线程,不然可能致使ANR继承

5.startService()调用startCommand(),必须经过stopself或stopService销毁进程

  bindService()不调用startCommand(),调用onbind()返回一个Ibinder对象用以获取servic进行交互it

6.何时应该用service?当你想要离开你的应用,之后还想让他运行在后台。若是只在当前页交互,开启一个线程就行了。后台

7.为了正确的启动一个srevice,启动一个service的时候要用显示的Intent,若是要加intent filter ,也要再包名加入Intent中
service

8.经过设置 android:exported="false" 让service 仅本程序可用
程序

9.一个服务能够继承service或IntentService,若是不须要同时完成多任务推荐用IntentService通信

10.先startService,而后bindService.当调用stopself或stopservice并不能关闭sevice,直到全部的绑定都解绑。

11.一个service能够同时被多个组件绑定,当全部的绑定解绑后才能销毁。

相关文章
相关标签/搜索