由于在启动手机时会清除AlarmManager,因此我创建了BootReceiver类,该类在这种情况下应重置警报。
但是,即使以这种方式执行了该类的其他代码,也不会设置AlarmManager,所以从不调用AlarmReceiver类。这是我的BootReceiver类代码的一部分:
Calendar Od = Calendar.getInstance();
Od.set(yearOd, monthOd, dayOd, hourOd, minuteOd);
AlarmManager am =(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
int id= rebootCursor.getInt(ToDoDBAdapter.ID_COLUMN);
Intent i = new Intent(context, AlarmReceiver.class);
i.putExtra("alarm_message", "stavi_vibracii");
i.putExtra("doVreme",vremeDo);
i.putExtra("doDatum",dateDo);
PendingIntent sender = PendingIntent.getBroadcast(context, id, i, PendingIntent.FLAG_UPDATE_CURRENT);
am.set(AlarmManager.RTC_WAKEUP, Od.getTimeInMillis(), sender);
我应该注意,我已经在清单文件中注册了BootReceiver和AlarmManger,并且在我的应用程序中设置警报时一切正常。如果有人有类似问题或对我的问题有答案,请告诉我。
感谢你
最佳答案
您可能需要设置唤醒锁,以使手机保持足够长的唤醒时间以完成任务。在这里查看信息:
https://github.com/commonsguy/cwac-wakeful
和
http://www.androidguys.com/2009/04/02/wake-up-with-the-alarm/
关于android - 未从Bootreceiver设置AlarmManager,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6389634/