Android 如果卸载应用程序,应用程序通过报警管理器设置的报警会发生什么情况

Android 如果卸载应用程序,应用程序通过报警管理器设置的报警会发生什么情况,android,android-pendingintent,android-alarms,Android,Android Pendingintent,Android Alarms,我有以下代码从我的应用程序设置警报 Intent intent = new Intent("MY_ALARM_NOTIFICATION"); intent.setClass(myActivity.this, OnAlarmReceive.class); intent.putExtra("id", id); PendingIntent pendingIntent = PendingIntent.getBroadcast( myActivity.this, Int

我有以下代码从我的应用程序设置警报

Intent intent = new Intent("MY_ALARM_NOTIFICATION");
intent.setClass(myActivity.this, OnAlarmReceive.class);
intent.putExtra("id", id);


PendingIntent pendingIntent = PendingIntent.getBroadcast(
                myActivity.this, Integer.parseInt(id),
                intent, PendingIntent.FLAG_UPDATE_CURRENT);

Calendar timeCal = Calendar.getInstance();
timeCal.set(Calendar.HOUR_OF_DAY, hour);
timeCal.set(Calendar.MINUTE, minutes);
timeCal.set(Calendar.DAY_OF_MONTH, day);
timeCal.set(Calendar.MONTH, month - 1);
timeCal.set(Calendar.YEAR, year);

Date date = timeCal.getTime();

AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, timeCal.getTimeInMillis(), pendingIntent);

从设置中删除应用程序时会发生什么情况?警报是否保留?

当卸载计划警报的应用程序时,您通过
AlarmManager
计划的事件将被删除。

如果您希望警报在卸载后保持不变,您需要将其添加到用户的谷歌日历(或创建日历)中

  Intent intent = new Intent(Intent.ACTION_INSERT)
            .setData(CalendarContract.Events.CONTENT_URI)
            .putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, reminderDateTime.getMillis())
            .putExtra(CalendarContract.EXTRA_EVENT_END_TIME, reminderDateTime.getMillis())
            .putExtra(CalendarContract.Events.TITLE, "TITLE"
            .putExtra(CalendarContract.Events.DESCRIPTION, eventDescription)
            .putExtra(CalendarContract.Events.HAS_ALARM, true)
            .putExtra(CalendarContract.Events.ALLOWED_REMINDERS, new int[]{CalendarContract.Reminders.METHOD_ALARM, CalendarContract.Reminders.METHOD_ALERT})
            .putExtra(CalendarContract.Events.AVAILABILITY, CalendarContract.Events.AVAILABILITY_BUSY);

你知道它是否是同一个iOS吗?@tony9099:我不知道iOS有
AlarmManager
PendingContent
,等等。你最好问一个单独的堆栈溢出问题,用
iOS
标记,而不是
android
,用iOS特定术语来解决您的问题。@Commonware在“应用程序更新”的情况下是否类似?报警管理器的未决意图是否已删除?@Tejas:AFAIK,否。我可以验证Commonware的答案。应用程序更新不会删除以前提供给AlarmManager的挂起缩进。在应用程序更新后,先前计划的重复警报将正常触发。