Service与Activity一样,也有一个从启动到销毁的过程,但Service的这个过程比Activity简单得多,Service从启动到销毁的过程只会经历3个阶段:
(1)创建服务;
(2)开始服务
(3)销毁事物
一个服务实际上是一个继承自android.app.Service类,当服务经历上门3个阶段后,会分别调用Service类中的3个事件方法进行交互,这3个事件方法如下:
public void onCreate(); //创建服务
public void OnStart(Intent intent,int startId); //开始服务
public void onDestory(); //销毁事物
一个服务只会创建一次,销毁一次,但可以开始多次,因此,onCreate和onDestroy方法只会被调用一次,而onStart方法会被调用多次
下面编写一个服务类,具体看一下服务的生命周期由开始到销毁的过程。
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
public class MyService extends Service {
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
//当服务第一次创建时调用该方法
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
}
//当服务销毁时调用该方法
@Override
public void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
}
//当开始服务时调用该方法
@Override
public void onStart(Intent intent, int startId) {
// TODO Auto-generated method stub
super.onStart(intent, startId);
}
}
接着,在AndroidManifest.xml文件中进行配置。
<service android:enable="true" android:name=".MyService" />
其中android:enable="true"表示MyServie服务处于激活状态,系统不会自动启动该服务,要想启动这个服务,必须显示调用startService方法,反之,停止则显示的调用stopService方法,代码如下:
public void onClick(View view)
{
switch(view.getId())
{
case R.id.btnStartService:
startService(serviceIntent);
break;
case R.id.btnStopService:
stopService(serviceIntent);
break;
}
}