我已經看到許多服務的默認行爲,它們在被系統或用戶殺死時重新啓動。ANDROID:當我的服務死亡/墜毀時重新啓動android設備
是否有可能如果我的服務被殺害或崩潰android設備重新啓動,而不是我的服務本身重新啓動。
如果是這樣,那麼android就提供了一些我們可以用來實現上述的機制。
我已經看到許多服務的默認行爲,它們在被系統或用戶殺死時重新啓動。ANDROID:當我的服務死亡/墜毀時重新啓動android設備
是否有可能如果我的服務被殺害或崩潰android設備重新啓動,而不是我的服務本身重新啓動。
如果是這樣,那麼android就提供了一些我們可以用來實現上述的機制。
首先,它是真的非常糟糕的模式重新啓動設備的服務銷燬。
不管怎麼說,你可以使用下面的代碼
public class demoService extends Service
{
@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");
}
@Override
public void onDestroy() {
super.onDestroy();
// this won't restart your phone instead it will ask for action
Intent i = new Intent("android.intent.action.ACTION_REQUEST_SHUTDOWN");
i.putExtra("android.intent.extra.KEY_CONFIRM", true);
startActivity(i);
}
}
是的,建議不要在服務銷燬時重啓設備。 –
另外,如果服務崩潰,那麼ondestroy()函數將不會被調用。那麼是否還有其他方法可以實現上述目標? –
@SachinDagur檢查了這一點,可以幫助你解決你的第二個問題http://stackoverflow.com/questions/600207/how-to-check-if-a-service-is-running-on-android –
你們是不是要爲學術目的這樣做實現這一目標?關閉一個設備不是個好主意 – Dibzmania
是@Dibzmania它是用於學術目的。 –