android - Android报警管理器同时设置多个问题
问题描述
我正在编写一个提醒应用程序。当我更新应用程序时,我的意思是更改 gradle 文件中的版本信息,应用程序中止所有提醒警报。我有方法重新设置警报。sqllite 中已经存在日期和时间信息。我的方法是
void setAlarmsAgain(MyReminder myReminder) {
try {
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm");
Calendar calendar = Calendar.getInstance();
Date date;
date = dateFormat.parse(myReminder.getDate() + " " + myReminder.getTime());
calendar.setTime(date);
dayProcess.setReminderAlarm(myReminder.getReminderId(), calendar);
if (index == reminderStartUps.size()) {
handler.removeCallbacks(runnable);
sharedPreferences.edit().putString("versionName", appVersionName).apply();
//to keep updated version infos and to do control
} else {
handler.postDelayed(runnable, 1000);
}
} catch (Exception e) {
e.printStackTrace();
}
}
我有处理程序,可运行不阻塞主线程。它是
myReminderList = dayProcess.getRemindersForSetAlarm();
Collections.sort(myReminderList);
handler = new Handler();
runnable = new Runnable() {
@Override
public void run() {
setAlarmsAgain(myReminderList.get(index++));
}
};
handler.post(runnable);
我的问题是当我调试应用程序(Shift-F9)警报正确执行时,没问题,但我运行此应用程序(Shift-F10)警报不响。也许alarmmanager.set(..) 会同时执行多个,因为我定义了多个提醒,方法无法正确执行,所以我使用了handler.postdelayed,就像上面的方法一样。不幸再次失败。闹钟不响。你能帮助我吗 ?
解决方案
我试过只运行手机。我的意思是我没有使用 android studio 来运行我的应用程序并且它有效。我们可以理解,当我们从 Android Studio 执行应用程序并设置警报管理器时,它无法正常工作。我们应该只在电话上使用它。不是编辑
推荐阅读
- c# - 统一处理取消订阅
- git - gitlab 中是否有可用的推送请求功能
- angular - 更改光标并删除底层线
- java - Retrofit2 MVP Android
- android - 程序类型已经存在:kotlinx.coroutines.experimental.EventLoopBase
- kubernetes - ARM Kubernetes V1.11.2 HA 集群 CoreDNS 不创建 Pod
- php - 如何在php中的一个数组中获取一个文件的多行
- python - selenium.common.exceptions.JavascriptException:消息:TypeError:参数 [0] 为空
- string - Excel VBA - 在单元格之间复制文本并修改文本
- vba - VBA 当单元格等于另一个工作表中的单元格时发送电子邮件