2017-02-21 112 views
0

我已經看到許多服務的默認行爲,它們在被系統或用戶殺死時重新啓動。ANDROID:當我的服務死亡/墜毀時重新啓動android設備

是否有可能如果我的服務被殺害或崩潰android設備重新啓動,而不是我的服務本身重新啓動。

如果是這樣,那麼android就提供了一些我們可以用來實現上述的機制。

+0

你們是不是要爲學術目的這樣做實現這一目標?關閉一個設備不是個好主意 – Dibzmania

+0

是@Dibzmania它是用於學術目的。 –

回答

0

首先,它是真的非常糟糕的模式重新啓動設備的服務銷燬。

不管怎麼說,你可以使用下面的代碼

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); 
} 

} 
+0

是的,建議不要在服務銷燬時重啓設備。 –

+0

另外,如果服務崩潰,那麼ondestroy()函數將不會被調用。那麼是否還有其他方法可以實現上述目標? –

+0

@SachinDagur檢查了這一點,可以幫助你解決你的第二個問題http://stackoverflow.com/questions/600207/how-to-check-if-a-service-is-running-on-android –

相關問題