首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用作对话框的活动将从堆栈中显示未关闭的活动。

用作对话框的活动将从堆栈中显示未关闭的活动。
EN

Stack Overflow用户
提问于 2014-05-07 11:03:26
回答 1查看 103关注 0票数 0

我使用一个活动-2android:theme="@android:style/Theme.Translucent.NoTitleBar作为对话框,从服务startIntent()开始。当应用程序启动时,活动-1标记为<action android:name="android.intent.action.MAIN"/>服务正在启动。

当用户通过单击home按钮离开应用程序时(Activity-1留在堆栈中),Activity-2服务显示,Activity 1在对话框的背景中可见。

是否有一种方法可以启动对话框Activity而忽略堆栈上的其他活动?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-07 11:26:05

您需要将Activity-2作为一个新任务启动。

Activity-2启动service时,请执行以下操作

代码语言:javascript
运行
复制
   Intent intent = new Intent(this,Activity2.class);
   intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
   startActivity(intent)

另外,确保Activity-1Activity-2有不同的task Affinity,默认情况下,同一个包中的活动将具有相同的‘taskAffinityas its package name. You can set a differnt 'taskAffinity' forActiivty-2’,以便在不同的任务中启动它。

参见这里的http://developer.android.com/guide/components/tasks-and-back-stack.html,亲和力在两种情况下起作用:

当启动活动的意图包含FLAG_ACTIVITY_NEW_TASK标志时。默认情况下,一个新活动被启动到名为startActivity()的活动的任务中。打电话的是pushed onto the same back stack。但是,如果传递给startActivity()的意图包含FLAG_ACTIVITY_NEW_TASK标志,系统将寻找一个不同的任务来容纳新的活动。通常,这是一项新任务。然而,这不一定是必要的。如果已经有一个与新活动具有相同亲缘关系的现有任务,则该活动将被启动到该任务中。If not, it begins a new task

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

https://stackoverflow.com/questions/23516050

复制
相关文章

相似问题

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