Android 以数组列表或其他形式将挂起的意图保存到共享首选项中?

Android 以数组列表或其他形式将挂起的意图保存到共享首选项中?,android,arraylist,sharedpreferences,android-pendingintent,Android,Arraylist,Sharedpreferences,Android Pendingintent,我正在开发一个应用程序,其中我希望将挂起的意图保存到共享首选项中,并在共享首选项中存在挂起的意图时对应用程序执行一些操作 参考链接: 但在这个链接中也没有找到解决方案 如果有人知道我该怎么做,请告诉我 谢谢。您在评论中写道: 如果你有多个警报,你想取消其中一些,那么我 我想我们只能通过它的挂起内容来取消。这就是问题所在 我保存挂起内容的原因。我的方法是正确的吗 不,这不是解决这个问题的正确方法 是的,您需要向AlarmManager.cancel()提供一个PendingEvent。但是,您不

我正在开发一个应用程序,其中我希望将挂起的意图保存到共享首选项中,并在共享首选项中存在挂起的意图时对应用程序执行一些操作

参考链接:

但在这个链接中也没有找到解决方案

如果有人知道我该怎么做,请告诉我


谢谢。您在评论中写道:

如果你有多个警报,你想取消其中一些,那么我 我想我们只能通过它的
挂起内容来取消。这就是问题所在
我保存
挂起内容的原因
。我的方法是正确的吗

不,这不是解决这个问题的正确方法

是的,您需要向
AlarmManager.cancel()
提供一个
PendingEvent
。但是,您不需要将
pendingent
保存在持久存储中。您需要做的是在持久存储中保存足够的信息,以便可以重新创建
pendingent

要重新创建挂起内容,只需执行以下操作:

Intent intent = new Intent(context, MyActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, requestCode, intent, PendingIntent.NO_CREATE);
if (pendingIntent != null) {
    alarmManager.cancel(pendingIntent); // cancel alarm
    pendingIntent.cancel(); // delete the PendingIntent
}
我在示例代码中使用了
活动
,但您也可以使用
服务
广播接收器
,无论您在代码中使用什么

如果您只想使用它来取消现有报警,则无需在
意图中添加任何额外内容


如果有多个报警,则
意图
s必须是唯一的。你只需要保存你正在使用的使它们唯一的东西(
requestCode
,或
Intent
ACTION,或任何东西),然后当你想取消报警时,使用相同的参数重新创建
pendingent

我刚刚添加了一个链接问题的答案。这应该会对您有所帮助。为什么要将
挂起的内容
保存到
共享引用
?无论你想做什么,我都怀疑这是正确的解决方案。谢谢你的解决方案。我想你有多个警报,你想取消其中的几个。然后我想我们只能通过它的待定意图来取消。这就是我为什么要保存待定意图的原因。我的方法对吗?不,这是错误的方法。我补充了一个答案。如果您发布用于创建
pendingent
以设置报警的代码,我可以编辑我的代码以匹配您的代码。