1
破壊されたときにもう一度サービスを開始したいです。AndroidサービスのonDestroyメソッドでonCreateメソッドを呼び出す必要がありますか?
@Override
public void onDestroy() {
super.onDestroy();
onCreate();
}
破壊されたときにもう一度サービスを開始したいです。AndroidサービスのonDestroyメソッドでonCreateメソッドを呼び出す必要がありますか?
@Override
public void onDestroy() {
super.onDestroy();
onCreate();
}
これは実行しないでください。これは何もするつもりはありません。サービスを再起動するには、onTaskRemove()で再起動する必要があります。
@Override
public void onTaskRemoved(Intent rootIntent) {
Intent restartService = new Intent(getApplicationContext(),
this.getClass());
restartService.setPackage(getPackageName());
PendingIntent restartServicePI = PendingIntent.getService(
getApplicationContext(), 1, restartService,
PendingIntent.FLAG_ONE_SHOT);
AlarmManager alarmService = (AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE);
alarmService.set(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime() + 1000, restartServicePI);
}
なぜ、あなたは 'onDestroy()'でサービスを再起動したいのですか?私はあなたがなぜそれを破壊して取り消すのではなく、長期間実行するのではないかということです。それとも、Androidシステムがそれを殺すからでしょうか?あなたが直面している状況について私たちにもっと教えていただければ、あなたの実際の問題に合ったより良い答えを提供することができます。 –
@PeppermintPaddy私は自分のアプリケーションでソケットサーバーを作成したいと思っています。他のデバイスはこのサーバーと通信します。しかし、昨夜のサーバーは自動的に停止しますので、停止するとサーバーを再起動します。 – Jenish
既にSTART_STICKYでフォアグラウンドサービスとして実行してみましたか? –