WEB开发网
开发学院手机开发Android 开发 Android 开发教程之 Service 详解 阅读

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 happe

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

所谓绑定在一起就共存亡了。

那有同学问了,要是这几个方法交织在一起的话,会出现什么情况呢?

上一页  4 5 6 7 8 9 10  下一页

Tags:Android 开发 教程

编辑录入:coldstar [复制链接] [打 印]
赞助商链接