Android 随机调用报警管理器OnCreate()
我试着四处搜索,但似乎只有我一个人经历过这样的错误,所以也许有人能指出我做错了什么 我通过以下功能创建AlarmManager:Android 随机调用报警管理器OnCreate(),android,timer,alarmmanager,oncreate,Android,Timer,Alarmmanager,Oncreate,我试着四处搜索,但似乎只有我一个人经历过这样的错误,所以也许有人能指出我做错了什么 我通过以下功能创建AlarmManager: public void startTimer() { Intent myIntent = new Intent(MainActivity.this, MyAlarmService.class); pendingIntent = PendingIntent.getService(MainActivity.this, 0,
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();
}
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);
}
它按预期创建:调用OnCreate,然后调用OnStart。
然后通过调用函数停止计时器:
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();
}
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);
}
在这次通话之后,它确实停止了
当AlarmManager的OnCreate和OnStart方法在应用程序关闭后很久才被调用,而这些调用中没有容易看到的系统时,问题就出现了。虽然这似乎发生在我的手机缺少可用内存的时候
有什么想法吗?提前谢谢 您的服务完成后需要调用stopSelf,或者您需要切换到使用IntentService,该服务完成后将自动调用stopSelf。现在,你正在泄漏服务,安卓系统正在破坏并重新创建它。哦,谢谢,不知怎么的,我错过了。这似乎解决了我的问题。