2017-02-21 15 views
0

多くのサービスのデフォルトの動作は、システムまたはユーザーによって強制終了されたときに再開されています。アンドロイド:サービスが強制終了/クラッシュしたときのアンドロイドデバイスのリブート

サービスが強制終了またはクラッシュした場合、サービス自体が再起動される代わりにアンドロイドデバイスが再起動される可能性はありますか?

もしそうなら、上記を達成するために使用できるメカニズムを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これをチェックすると、2番目の懸念事項を解決するのに役立ちます。http://stackoverflow.com/questions/600207/how-to-check-if-a-service-is-running-on-android –

関連する問題