1.什么是Service?
service 不是分离开的进程,除非其他特殊情况,它运行在自己的进程中,而是启动子线程
service不是线程,意味着它将在主线程里劳作
2.启动线程的方式:
Context.startService();调用者与服务之间没有关联,即使调用者退出,服务仍在进行
Context.bindService();调用者与服务绑定在一起,调用一旦退出,服务也就终止
3.onStartCommand方法返回的数值:
START_STICKY:
运行onStartCommand()后service进程被kill后,保存开始状态,但是不保留intent。
不久后,service就会再次重新创建。若没有传递任何开始命令给service,将会获取到
null的intent。
START_REDELIVER_INTENT:
onStartCommand()在运行中service进程被kill后,系统将会再次启动service,并传入最后
一个intent个onStartCommand(); 知道stopSelf(int);才停止运行intent。若被kill后未处理好intent
服务还会再次自动启动。因此onStartCommand();不会接收任何null的intent。
START_NOT_STICKY:
运行onStartCommand();后service被kill后,且没有新的intent传递给它。service会移除开始状态。
直到新的明显的方法(startService)调用才重新创建。因为如果没有传递任何未决定的intent,那
么service是不会启动的。期间onStartCommand();不会接收任何的null的intent
4.生命周期:
onBind
onCreate
onStartCommand
onDestroy