私は周りを検索しようとしましたが、このようなエラーが発生したのは私だけのようです。そのため、誰かが私が間違ったことを指摘できるかもしれません。
AlarmManager
私はこの関数を介して作成します:
public void startTimer() {
Intent myIntent = new Intent(MainActivity.this, MyAlarmService.class);
pendingIntent = PendingIntent.getService(MainActivity.this, 0,
myIntent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, 10);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis(),
AlarmManager.INTERVAL_FIFTEEN_MINUTES / 50, pendingIntent);
Toast.makeText(MainActivity.this, "Start Alarm", Toast.LENGTH_LONG)
.show();
}
期待どおりに作成されます。OnCreate()
呼び出されてからOnStart()
呼び出されます。次に、関数を呼び出してタイマーを停止します。
private void stopTimer() {
Intent myIntent = new Intent(MainActivity.this, MyAlarmService.class);
pendingIntent = PendingIntent.getService(MainActivity.this, 0,
myIntent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.cancel(pendingIntent);
}
そして、それは確かにこの呼び出しの後に停止されます。
その後、アプリが閉じられてからずっと後にAlarmManagerOnCreate()
とOnStart()
メソッドが呼び出され、それらの呼び出しでシステムが簡単に見られない場合に、問題が発生します。これは私の電話に空きメモリがないときに起こるようですが。
何か案は?前もって感謝します!