WEB开发网
开发学院手机开发Android 开发 Android 教程 使用Service 阅读

Android 教程 使用Service

 2010-05-06 16:23:00 来源:WEB开发网   
核心提示::Java代码private void startService() {Intent i = new Intent(this, TestService.class);this.startService(i);}private void stopService() {Intent i = new Intent(this,

Java代码

private void startService() {

Intent i = new Intent(this, TestService.class);

this.startService(i);

}

private void stopService() {

Intent i = new Intent(this, TestService.class);

this.stopService(i);

}

对于bind的话,需要一个ServiceConnection对象

Java代码

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

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

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

上一页  1 2 3 4 5 6  下一页

Tags:Android 教程 使用

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