如果我的应用程序没有运行,AlarmManager是否可以工作

时间:2013-10-29 04:32:51

标签: android alarmmanager

如果我正在与我的应用程序进行交互(使用),我会发出警报,但如果我将其设置为第二天并且不与我的应用程序进行交互,则它无法正常工作。因此我怀疑这是因为我的申请流程当时没有运行。

这就是我正在做的事情

    Calendar calSet = Calendar.getInstance();
    calSet.set(Calendar.HOUR_OF_DAY, selectedhour);
    calSet.set(Calendar.MINUTE, selectedminute);
    calSet.set(Calendar.YEAR, year);
    calSet.set(Calendar.MONTH, monthOfYear);
    calSet.set(Calendar.DATE, dayOfMonth);
    alarm = new Intent(ActivityA.this, Service.class);
    pendingIntent = PendingIntent.getService(getApplicationContext(), i++,alarm, 1);
    alarmanager.set(AlarmManager.RTC_WAKEUP, calSet.getTimeInMillis(),pendingIntent);  

1 个答案:

答案 0 :(得分:1)

是,如果手机重新启动,您将丢失已注册的任何AlarmManager意图。要解决这个问题,你应该为BOOT_COMPLETED创建一个广播接收器。在接收器的onRecieve()事件中,您需要重新注册先前已注册的任何警报。

但是,如果您的进程仅被终止并且手机尚未重启,则您的闹钟仍然会响起。

这可能会对您有所帮助:http://developer.android.com/training/scheduling/alarms.html#boot