私のアプリケーションは、X分ごとに、それよりも、データベース上で同じ動作を行うstopSelf()サービスを持っているし、onDestroyメソッドに私は同じ時間後に再スタートのために、このコードのサービスをpalcedていますアンドロイド:サービスを再起動
@Override
public void onDestroy() {
super.onDestroy();
Intent intent_service = new Intent(context,vampireService.class);
PendingIntent pintent = PendingIntent.getService(context, 0, intent_service,0);
AlarmManager alarm = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
alarm.set(AlarmManager.ELAPSED_REALTIME,SystemClock.elapsedRealtime()+ 4500000, pintent);
}
を
しかし、私の電話がスリープモードに入るとサービスが再起動しないのはなぜですか?アラームマネージャのカウント時間が、ディスプレイの電源を切ってから開始するように表示されます....可能でしょうか?はいの場合、どうすればこの問題を解決できますか?
おかげ
ELAPSED_REALTIMEのドキュメントから
いいえ動作しません...よりもXXX時間後にサービスを停止して再開できますか? – Mimmo
@Mimmo:この回答の解決策はうまくいくはずです。しかし、 'getService()' 'PendingIntent'と' _WAKEUP'アラームで信頼できる結果を得ることはできません。さらに、サービスが動作している間、あなたのサービスは 'WakeLock'を維持する必要があります。そうでなければ、デバイスは眠りに落ちます。 '_WAKEUP'アラームを使用するための適切なパターンがあり、作業中にデバイスを起床させておくので、自分の[' WakefulIntentService'](https://github.com/commonsguy/cwac-wakeful)の使用を検討することもできます。 – CommonsWare
しかし、スリープモードに入っているときに1つのサービスを再起動できない可能性はありますか? – Mimmo