多くのサービスのデフォルトの動作は、システムまたはユーザーによって強制終了されたときに再開されています。アンドロイド:サービスが強制終了/クラッシュしたときのアンドロイドデバイスのリブート
サービスが強制終了またはクラッシュした場合、サービス自体が再起動される代わりにアンドロイドデバイスが再起動される可能性はありますか?
もしそうなら、上記を達成するために使用できるメカニズムを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これをチェックすると、2番目の懸念事項を解決するのに役立ちます。http://stackoverflow.com/questions/600207/how-to-check-if-a-service-is-running-on-android –
の下に使用してこれを達成することができますが、学術目的のためにこれをやろうとしていますか?デバイスをシャットダウンすると良いことはありません – Dibzmania
はい@Dibzmaniaそれは学術目的のためです。 –