我试图四处搜索,但似乎我是唯一一个遇到这种错误的人,所以也许有人能指出我做错了什么。
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()
方法时,在这些调用中没有容易看到的系统。虽然这似乎是在我的手机缺少可用内存时发生的。
有任何想法吗?提前致谢!