Android 更新时间后闹钟不工作
Android Alarm is not working after updating time
我设置了重复闹钟,效果很好,但是当我更新时间时,闹钟不起作用。我在未决意图中使用相同的代码和标志,但从不同的 activity 创建和更新。在日志中它说警报在特定时间触发但它不工作。谁能说说是什么问题?
从插入调用警报 activity:
startAlarm(Insert.this, pillName, timeInMilis, code);
正在从编辑中调用闹钟 activity:
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);
}
广播接收器class:
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 挂起的意图。它可能运作良好
我设置了重复闹钟,效果很好,但是当我更新时间时,闹钟不起作用。我在未决意图中使用相同的代码和标志,但从不同的 activity 创建和更新。在日志中它说警报在特定时间触发但它不工作。谁能说说是什么问题?
从插入调用警报 activity:
startAlarm(Insert.this, pillName, timeInMilis, code);
正在从编辑中调用闹钟 activity:
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);
}
广播接收器class:
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 挂起的意图。它可能运作良好