读书人

【6.8】Service的1点理解

发布时间: 2012-09-29 10:30:01 作者: rapoo

【6.8】Service的一点理解

与Activity不同,Service 自启动,运行在后台,不能与用户交互,退出应用时,Service还能运行。如MP3播放

?

Service的生命周期:onCreate -> onStart -> onDestroy (其中Service在onDestroy之前,onCreate只执行一次,onStart可以执行多次)

?

步骤:

?

1)创建一个Service类继承自Service,其中有onCreate(),onStart(Intent?intent,?int?startId),onDestroy(),onBind()四个方法可以重写,其中onBind()一定要重写

?

2)在AndroidManifest.xml中注册Service,其中android:name要和创建的Service完全一致

?

3)开始服务:startService(intent);结束服务:stopService(intent)

?

?

绑定Service和Activity

?

假如没有结束服务的话,Service会一直运行直至关机,所以绑定可以使Activity在onStop时同时销毁Service

?

绑定的Service的生命周期:onCreate -> onBind -> onUnbind -> ondestroy

?

?

在MyService类中定义了一个MyBinder类,该类实际上是为了获得MyService的对象实例的。在ServiceConnection接口onServiceConnected方法中的第2个参数是一个IBinder类型的变量,将该参数转换成MyService.MyBinder对象,并使用MyBinder类中的getService方法获得MyService对象。在获得MyService对象后,就可以在Activity中随意操作MyService类了

?

?

注意事项

?

1)两者请不要混用,否则容易出现Service没被Destroy的情况。

?

如startService后再bindService,此时退出Activity之后unbindService,不会destroy

?

2)确保有bindService就有unBindService(绑定的会在退出时自动unbind),有startService就有stopService

读书人网 >移动开发

热点推荐