目前,我正在开发一个新的android项目,它使用后台服务。因为android版本
class AlarmHandler {
private Context context;
AlarmHandler(Context context){
this.context=context;
}
void setAlarmManager(){
Intent intent=new Intent(context,NotificationService.class);
PendingIntent pendingIntent=PendingIntent.getBroadcast(context,2,intent,0);
AlarmManager alarmManager= (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
if(alarmManager!=null){
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,5000,60000,pendingIntent);
}
}
void cancelAlarmManager(){
Intent intent=new Intent(context,NotificationService.class);
PendingIntent pendingIntent=PendingIntent.getBroadcast(context,2,intent,0);
AlarmManager alarmManager= (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
if(alarmManager!=null){
alarmManager.cancel(pendingIntent);
}
}
}
我的通知服务如下
public class NotificationService extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String t1=timeFromsharedPreferences("t1");
String t2=timeFromsharedPreferences("t2");
String systemTime=getCurrentTime();
if(systemTime.equals(t1)){
notify();
}else if(systemTime.equals(t2)){
notify();
}
}
}
我使用以下代码启动AlarmHandler
AlarmHandler alarmHandler=new AlarmHandler(this);
alarmHandler.cancelAlarmManager();
alarmHandler.setAlarmManager();
我还注册了以下广播接收器
<receiver android:name=".NotificationService" android:enabled="true" />
我的问题是有时它会跳过我的通知。时间安排为晚上10:00和早上7:00。收到晚上10点的通知(请注意,我在晚上10:00使用电话或在晚上10:00前几分钟使用)。但并非所有时间都收到上午7:00的通知。还要注意的是,我每天都需要在同一时间收到通知。请帮帮我。
您不能有重复的精确警报。如果您需要它以精确的间隔重复,您需要在第一个间隔设置一个精确的警报,然后在警报触发时重新启动警报,以便在下一个间隔内启动警报,并继续重复该过程。
编辑:
你需要做这样的事
1.- compute delta in millis to next interval
2.- set exact alarm to fire in delta millis
3.- when the alarm fires, handle the event and then go to step 1
问题内容: 我想创建带有通知消息的广播AlarmManager(重复)。我从Pickers中传递日历对象。如果我不重启设备,它将正常工作。但是,当我重新启动设备时,您知道我的calander对象将为null。重新启动后如何管理重复警报以及如何保留日历时间表?感谢您的想法。 问题答案: 您需要使用并将其设置为响应消息。例如 在清单中注册您的 在代码中处理消息 MyBootReceiver.java
下面是我的回复: 我走对路了吗?AndroidAlarmManager能做我想做的事情吗?我也不确定为什么隔离方法不能单独工作,我得到的唯一解释是我需要使用AndroidAlarmManager。现在,这些事件并不像我告诉他们的那样以100毫秒的速率发射,而是间隔1到几分钟发射。
问题内容: 嗨,我正在开发警报应用程序,因为我需要在用户选择的不同日期的同一时间重复调用警报。 我meen如果我设置报警时间8PM和重复选项sunday,tuesday闹钟会在每个被调用sunday,tuesday。 任何帮助,将不胜感激。 问题答案: 为此使用广播接收器和Sqlite数据库。
嗨,我目前正在使用警报管理器。我写了下面给出的代码。根据代码,警报管理器应该在10秒后触发,但在我的代码中,警报管理器会立即触发。请帮助。 还有我的警报接收课 我已经在清单中添加了所需的权限。
我在Google Play控制台上收到了一份来自Android Vval的关于过度警报管理器唤醒的性能报告: https://developer.android.com/topic/performance/vitals/wakeup.html 我使用Google Play Services的位置API在后台请求位置更新。报告显示,过度唤醒是由com引起的。谷歌。Android地方ALARM_WAK