2010-12-10 21 views
2

方案显示老活动堆栈:的Android:怎么能服务启动活动,而背后

Activity "A" launches Service "S". 

按下HOME /“返回”键,不显示“A”。

一段时间后, “S” 开头的意图活动 “B”

Intent intent = new Intent(context, MyDialog.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(intent); 

当前的行为: “B” 显示了 “A” 后面的场景。

我想要的:“B”在场景中显示出没有“A”的背后。

注:活动B是一个对话活动

回答

1

首先,你不应该这样做。服务不应该开始活动(一般)。你不想让用户弹出窗口,除非它被特别要求(即发短信应用程序)。

,如果适合您的需求,您可以使用对活性产生的noHistory属性。 http://developer.android.com/guide/topics/manifest/activity-element.html#nohist

但正如你所描述的那样,你看到的不应该发生,特别是如果你用后退按钮离开A。

0

我相信你应该能够调用finish();下面你这里什么的最后一行。尽管如此,不要引用我的话。

+0

不要这样做。不要手动处理堆栈。 – Falmarri 2010-12-10 23:14:11