我正在尝试按照这些步骤管理警报,我需要帮助!
使用SQLite表等来正确跟踪警报,以及创建的,计划的和触发的时间戳。
这里有关于stackoverflow的答案:AlarmMenager Checking if alarm already fired
所以我创造了我的警报,以便在特定的日子开火,这实际上是有效的。我在设置警报时插入了SQLite以及其他详细信息。
但我的问题是我需要在报警准确触发时更新SQLite中的表。要更新" triggered_at
"列。
这是我的以下代码,Fires ze alarm!
//Alarm Manager Set
alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, ReminderAlarmReceiver.class);
alarmIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_WEEK, 5); // 5 is Thursday
calendar.set(Calendar.HOUR_OF_DAY, 4); // 4 is 4:00AM HOUR
calendar.set(Calendar.MINUTE, 48); // 48 is 48 minutes
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
alarmMgr.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), alarmIntent);
/* Insert SQLite data */
db.execSQL("CREATE TABLE IF NOT EXISTS MyTable (Name VARCHAR, Repeating INT, time FLOAT, alarm_set_at INT, triggered_at INT)");
//Get current time and other details and replace the static values
db.execSQL("INSERT INTO MyTable VALUES ('Brimelow', 1, 18:00, 1780094, 1800094); ");
/** After Alarm has been triggered **/
db.execSQL("UPDATE MyTable SET triggered_at = 'TIME_TRIGGERED' ");
答案 0 :(得分:0)
在BroadcastReceiver
(ReminderAlarmReceiver.class)处理alarmIntent
时,您可以更新列triggered_at
。