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
以设置报警的代码,我可以编辑我的代码以匹配您的代码。