Service解析:
运行service有如下两种方式:
StartService() 访问者退出,service仍然运行; BindService() 访问者与service绑定,访问者退出,service就会终止。
首次调用startService()启动一个service
onCreate()-> onStartCommand()-> onStart() 再次启动: onStartCommand()-> onStart()
调用stopService()结束Service(),回调onDestory()方法
BindService()
Service类中必须实现如下方法,绑定Service时回调该方法
public IBinder onBind(Intent intent) {
Log.i(TAG, "onBind called.");
return new Binder() {};
}
BindService()的调用顺序:bindService(Intent service, ServiceConnection conn, int flags)
onCreate()->onBind()
UnBindService()的调用顺序: onUnbind() –> onDestory()
UI线程通过Service调用如下两种方法,创建和启动Service:
1. /**
2. * 启动服务
3. * @param view
4. */
5. public void start(View view) {
6. Intent intent = new Intent(this, MyService.class);
7. startService(intent);
8. }
9.
10. /**
11. * 绑定服务
12. * @param view
13. */
14. public void bind(View view) {
15. Intent intent = new Intent(this, MyService.class);
16. bindService(intent, conn, Context.BIND_AUTO_CREATE);
17. }