一.異常關閉
在onStartCommand的return中添加flag。
START_STICKY:如果service程序被kill掉,保留service的狀态為開始狀态,但不保留遞送的intent對象。随後系統會嘗試重新建立service
@Override
public int onStartCommand(Intent intent, int flags, int startId)
{
return START_STICKY;
}
二.正常關閉
正常關閉則必定經過onDestroy,是以在onDestroy中發廣播,通過那個廣播再啟動service。
Service
@Override
public void onDestroy()
{
sendBroadcast(new Intent(GlobalData.RESTART_SERVICE));
super.onDestroy();
}
BroadcastReceiver
@Override
public void onReceive(Context context, Intent intent)
{
this.con = context;
new Thread(){
public void run() {
try
{
sleep(2000);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
con.startService(new Intent(MY_SERVICE));
};
}.start();
}