【发布时间】:2018-03-20 02:36:19
【问题描述】:
我设置了重复闹铃,效果很好,但是当我更新时间时闹铃不起作用。我在未决意图中使用相同的代码和标志,但从不同的活动创建和更新。在日志中它说警报在特定时间触发但它不起作用。谁能说说是什么问题?
从插入活动中调用警报:
startAlarm(Insert.this, pillName, timeInMilis, code);
从编辑活动中调用警报:
startAlarm(Edit.this, pillName, timeInMilis, code);
创建和更新警报的功能:
public void startAlarm(Context context, String pillName, long time, int code) {
Intent aIntent = new Intent(context, AlarmReceiver.class);
aIntent.putExtra("pillName", pillName);
aIntent.putExtra("code", code);
PendingIntent pIntent = PendingIntent.getBroadcast(context, code, aIntent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, time,60000, pIntent);
}
广播接收器类:
public void onReceive(Context context, Intent intent) {
String pillName=intent.getExtras().getString("pillName");
MediaPlayer mediaPlayer=MediaPlayer.create(context, Settings.System.DEFAULT_NOTIFICATION_URI);
mediaPlayer.start();
Toast.makeText(context,"Testing Alarm::"+pillName,Toast.LENGTH_SHORT).show();
}
【问题讨论】:
-
当您在停止 AlarmManager 挂起意图之前启动。它可能运作良好。请检查一下
-
谢谢,反正我的问题解决了。
标签: android android-intent broadcastreceiver task alarm