给定两个相同的小部件,具有不同的数据A和B,当在widget A启动的活动中显示widget A的数据时,按下返回按钮,然后按下widget B,一切正常。 但是,当显示widget A的数据时,按下主页按钮,然后按下widget B,仍会显示widget A的数据。从Android-当使用不同的extras从小部件启动相同的活动时,如何防止从HOME按钮返回后显示相同的实例?建议我的问题是两个PendingIntents(对于小部件A和B)是相同的,只有extras不同,因此被缓存。也就是说,在extras中是小部件ID,这是我需要检索小部件按操作的所有数据的关键。一个建议是使用不同的数据,但我似乎无法让其工作。下面是代码:
所有的努力都没有效果。
Intent intent = new Intent(context, WidgetActivity.class);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
intent.setData(Uri.withAppendedPath(Uri.parse("droidln://widget/id/"),
String.valueOf(appWidgetId)));
PendingIntent pendingIntent =
PendingIntent.getActivity(context, appWidgetId, intent, 0);
将setData
添加到意图中没有产生任何差异。 有什么解决已缓存挂起意图问题的想法吗?我也尝试过以下方法:
intent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
并且
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
并且
intent.setAction("actionstring" + System.currentTimeMillis());
所有的努力都没有效果。