首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Widget启动活动首先会阻止应用程序启动相同的活动

问从Widget启动活动首先会阻止应用程序启动相同的活动
EN

Stack Overflow用户
提问于 2011-07-14 05:04:06
回答 1查看 496关注 0票数 1

我的Android应用程序中有一个非常奇怪的行为。下面是发生的事情:

如果我“启动”应用程序(单击它的图标)并通过startActivity(Intent)启动一个活动,它工作得很好。如果我随后添加一个小部件并单击它以通过setOnClickPendingIntent()启动相同的意图,它也可以很好地工作。

现在,如果我点击后退按钮,直到应用程序“关闭”(即,我返回到主屏幕),并点击小部件,活动显示ok。但是,当我尝试从应用程序中启动相同的活动/意图时,它不再起作用。该活动未启动,我仍停留在同一屏幕上。我调试了代码,startActivity(Intent)方法的调用与前面完全一样(执行的是完全相同的代码段)。

如果我返回到主屏幕并再次“启动”应用程序(单击它的图标),一切都会恢复正常。

任何可能导致问题的原因的想法。

手机是Android 2.3.3。该应用是基于Android 2.1-update1 (API Level 7)构建的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-15 00:29:00

我找到了问题所在。

小部件通过设置标志intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);来启动意图

在我的列表视图活动中,我使用相同的标志来启动意图

代码语言:javascript
复制
Intent intent = new Intent("x.y.NEWS_DETAIL");
intent.putExtra(NewsConstants.ISSUE_ID, newsId);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getApplicationContext().startActivity(intent);

由于某些原因,当活动已在历史记录中时,使用FLAG_ACTIVITY_NEW_TASK请求该活动会阻止显示该活动。我通过删除标志并从当前上下文而不是应用程序上下文启动intent来修复代码:

代码语言:javascript
复制
 Intent intent = new Intent("x.y.NEWS_DETAIL");
 intent.putExtra(NewsConstants.ISSUE_ID, newsId);
 startActivity(intent);

我现在必须弄清楚这个标志对PendingIntent有什么影响,以及它是否应该与小部件一起使用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6685654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档