Android:如何知道触发警报的时间

时间:2015-11-19 10:09:59

标签: android sqlite android-alarms

我正在尝试按照这些步骤管理警报,我需要帮助!

使用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' ");

1 个答案:

答案 0 :(得分:0)

BroadcastReceiver(ReminderAlarmReceiver.class)处理alarmIntent时,您可以更新列triggered_at