如果我正在与我的应用程序进行交互(使用),我会发出警报,但如果我将其设置为第二天并且不与我的应用程序进行交互,则它无法正常工作。因此我怀疑这是因为我的申请流程当时没有运行。
这就是我正在做的事情
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);
答案 0 :(得分:1)
是,如果手机重新启动,您将丢失已注册的任何AlarmManager意图。要解决这个问题,你应该为BOOT_COMPLETED
创建一个广播接收器。在接收器的onRecieve()
事件中,您需要重新注册先前已注册的任何警报。
但是,如果您的进程仅被终止并且手机尚未重启,则您的闹钟仍然会响起。
这可能会对您有所帮助:http://developer.android.com/training/scheduling/alarms.html#boot