From 81c70a8822032a197172c2c9be9f859bd05e7e6e Mon Sep 17 00:00:00 2001 From: rtc Date: Mon, 18 Dec 2023 19:18:43 +0800 Subject: [PATCH] Signed-off-by: rtc --- .../micode/notes/ui/AlarmInitReceiver.java | 31 ++++++++++++------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/src/Notes-master/src/net/micode/notes/ui/AlarmInitReceiver.java b/src/Notes-master/src/net/micode/notes/ui/AlarmInitReceiver.java index f221202..d587094 100644 --- a/src/Notes-master/src/net/micode/notes/ui/AlarmInitReceiver.java +++ b/src/Notes-master/src/net/micode/notes/ui/AlarmInitReceiver.java @@ -30,36 +30,43 @@ import net.micode.notes.data.Notes.NoteColumns; public class AlarmInitReceiver extends BroadcastReceiver { - private static final String [] PROJECTION = new String [] { - NoteColumns.ID, - NoteColumns.ALERTED_DATE + // 查询备忘录的投影 + private static final String[] PROJECTION = new String[] { + NoteColumns.ID, + NoteColumns.ALERTED_DATE }; - private static final int COLUMN_ID = 0; - private static final int COLUMN_ALERTED_DATE = 1; - + // 列索引 + private static final int COLUMN_ID = 0; + private static final int COLUMN_ALERTED_DATE = 1; @Override public void onReceive(Context context, Intent intent) { + // 获取当前时间 long currentDate = System.currentTimeMillis(); + // 查询所有需要提醒的备忘录 Cursor c = context.getContentResolver().query(Notes.CONTENT_NOTE_URI, PROJECTION, NoteColumns.ALERTED_DATE + ">? AND " + NoteColumns.TYPE + "=" + Notes.TYPE_NOTE, - new String[] { String.valueOf(currentDate) }, + new String[]{String.valueOf(currentDate)}, null); if (c != null) { if (c.moveToFirst()) { do { + // 获取提醒时间和备忘录的ID long alertDate = c.getLong(COLUMN_ALERTED_DATE); + long noteId = c.getLong(COLUMN_ID); + // 创建一个发送广播的Intent,并设置数据为备忘录的URI Intent sender = new Intent(context, AlarmReceiver.class); - sender.setData(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, c.getLong(COLUMN_ID))); + sender.setData(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId)); + // 创建一个PendingIntent,用于发送广播 PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, sender, 0); - AlarmManager alermManager = (AlarmManager) context - .getSystemService(Context.ALARM_SERVICE); - alermManager.set(AlarmManager.RTC_WAKEUP, alertDate, pendingIntent); + // 获取AlarmManager实例,并设置提醒时间和发送广播的PendingIntent + AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); + alarmManager.set(AlarmManager.RTC_WAKEUP, alertDate, pendingIntent); } while (c.moveToNext()); } c.close(); } } -} +} \ No newline at end of file