【发布时间】:2011-11-26 17:05:56
【问题描述】:
我已经为这个问题苦苦挣扎了一段时间。我有一个显示烹饪食谱摘要的小部件。该小部件是可单击的,因此每当用户单击它时,都会打开带有该配方的完整描述的新活动。问题是,有时单击小部件时会打开错误的活动。举个例子吧:
- 用户点击小部件并打开活动 A
- 用户从活动 A 开始活动 B(例如食谱索引)。
- 用户从活动 B 开始活动 C。
- 用户按下主页按钮。
- 用户再次点击小部件,显示活动 C 而不是 A
我尝试设置这三个标志的组合,这仅有助于解决一半的问题:
openIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
通过使用上述标志,我设法显示正确的活动 (A),直到我执行以下操作:
- 用户从小部件打开活动 A
- 用户移动到活动 B 并通过单击新配方打开活动 A
- 向用户显示新配方
- 用户单击主页按钮并单击小部件。
- 活动 A 已显示(右侧),但配方不同。
- 从现在开始,如果我移动到不同的活动 B 或 C 并单击主页,然后再次单击小部件,则活动 A 不会显示,而是在按下主页按钮之前可见。
我希望我解释得足够详细。我真的很感谢你的帮助,因为这件事让我发疯了!
更新:
这是我的pendingIntent:
Intent openIntent = new Intent(context, ProfanityDefinition.class);
openIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
openIntent.setData(Uri.parse(openIntent.toUri(Intent.URI_INTENT_SCHEME)));
Bundle bundle = new Bundle();
bundle.putBoolean("widgetRequest", true);
openIntent.putExtras(bundle);
PendingIntent openPendingIntent = PendingIntent.getActivity(context, 0, openIntent, PendingIntent.FLAG_UPDATE_CURRENT);
views.setOnClickPendingIntent(R.id.widget_content, openPendingIntent);
谢谢
【问题讨论】:
标签: android android-activity android-intent widget android-pendingintent