天天看點

android 關閉 自動啟動程式,android – 如何自動重新啟動服務,即使使用者強制關閉它?...

首先,強力運作服務對使用者的意願是非常糟糕的模式。

無論如何,您可以使用BroadcastReceiver重新啟動它,它處理從您服務的onDestroy()發送的廣播。

StickyService.java

public class StickyService extends Service

{

private static final String TAG = "StickyService";

@Override

public IBinder onBind(Intent arg0) {

// TODO Auto-generated method stub

return null;

}

@Override

public int onStartCommand(Intent intent, int flags, int startId) {

Log.e(TAG, "onStartCommand");

return START_STICKY;

}

@Override

public void onDestroy() {

super.onDestroy();

sendBroadcast(new Intent("YouWillNeverKillMe"));

}

}

RestartServiceReceiver.java

public class RestartServiceReceiver extends BroadcastReceiver

{

private static final String TAG = "RestartServiceReceiver";

@Override

public void onReceive(Context context, Intent intent) {

Log.e(TAG, "onReceive");

context.startService(new Intent(context.getApplicationContext(), StickyService.class));

}

}

在清單檔案中聲明元件:

在元件中啟動StickyService(即應用程式,活動,片段):

startService(new Intent(this, StickyService.class));

要麼

sendBroadcast(new Intent("YouWillNeverKillMe"));