给定两个具有不同数据A和B的相同小部件,当小部件A的数据显示在小部件启动的活动中时,按下后退按钮然后按下小部件B它一切正常.然而,当显示小部件A的数据时,按下主页按钮然后按下小
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中没有产生任何区别.关于如何解决缓存挂起意图问题的任何想法?我也尝试过:
intent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
和
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
和
intent.setAction("actionstring" + System.currentTimeMillis());
一切都没有效果.
尝试同时使用:>挂起意图的不同操作 – intent.setAction(“actionstring”System.currentTimeMillis());
>正确的标志 – PendingIntent.FLAG_UPDATE_CURRENT(对于你的情况:PendingIntent.getActivity(context,appWidgetId,intent,PendingIntent.FLAG_UPDATE_CURRENT);
我在许多应用程序中使用这种PendingIntent样式,事实证明它是正确的.
我一直在使用的示例代码:
final ComponentName receiverName = new ComponentName(context, WidgetProvider.class); Intent doSth = new Intent("REFRESH_ME" + System.currentTimeMillis()); doSth.setComponent(receiverName); doSth.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widgetId); PendingIntent doSthPending = PendingIntent.getBroadcast(context, 0, doSth, PendingIntent.FLAG_UPDATE_CURRENT);