Service解析

时间:2022-07-14 06:01:27

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. }