由于在启动手机时会清除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/

10-12 02:30