Android 开发教程之 Service 详解
2010-02-22 16:14:00 来源:WEB开发网6. Toast.LENGTH_SHORT).show;
7. }
8.
9. public void onServiceDisconnected(ComponentName className) {
10. // unexpectedly disconnected,we should never see this happen.
11. _boundService = null;
12. Toast.makeText(TestServiceHolder.this, "Service connected",
13. Toast.LENGTH_SHORT).show;
14. }
15. };
private ServiceConnection _connection = new ServiceConnection {
public void onServiceConnected(ComponentName className, IBinder service) {
_boundService = ((TestService.LocalBinder)service).getService;
Toast.makeText(TestServiceHolder.this, "Service connected",
Toast.LENGTH_SHORT).show;
}
public void onServiceDisconnected(ComponentName className) {
// unexpectedly disconnected,we should never see this happen.
_boundService = null;
Toast.makeText(TestServiceHolder.this, "Service connected",
Toast.LENGTH_SHORT).show;
}
};
用来把Activity和特定的Service连接在一起,共同存亡,具体的生命周期细节下一段来讲。
三 Service的生命周期
Service的生命周期方法比Activity少一些,只有onCreate, onStart, onDestroy
我们有两种方式启动一个Service,他们对Service生命周期的影响是不一样的。
1 通过startService
Service会经历 onCreate -> onStart
stopService的时候直接onDestroy
如果是调用者(TestServiceHolder)自己直接退出而没有调用stopService的
话,Service会一直在后台运行。
下次TestServiceHolder再起来可以stopService。
2 通过bindService
Service只会运行onCreate, 这个时候 TestServiceHolder 和TestService绑定在一起
TestServiceHolder 退出了,Srevice就会调用onUnbind->onDestroyed
所谓绑定在一起就共存亡了。
那有同学问了,要是这几个方法交织在一起的话,会出现什么情况呢?
赞助商链接