【问题标题】:Android: How could a service start an Activity without old Activities in stack shown behindAndroid:服务如何在堆栈中没有旧活动的情况下启动活动
【发布时间】:2010-12-10 23:09:46
【问题描述】:

场景:

Activity "A" launches Service "S".

按'Home'/'back'键不显示“A”。

一段时间后“S”启动 Intent Activity“B”

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

当前行为:“B”出现在场景中,“A”在后面。

我想要什么:“B”出现在场景中,而“A”没有出现在场景中。

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

【问题讨论】:

    标签: android service dialog android-activity


    【解决方案1】:

    首先,您不应该这样做。服务不应启动活动(通常)。除非特别要求(即短信应用),否则您不希望在用户身上弹出窗口。

    如果符合您的要求,您可以在活动 A 上使用 noHistory 属性。 http://developer.android.com/guide/topics/manifest/activity-element.html#nohist

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

    【讨论】:

      【解决方案2】:

      我相信您应该可以将finish(); 作为您所拥有的内容下方的最后一行。不过不要引用我的话。

      【讨论】:

        【解决方案3】:

        您可以从Android Service and AlertDialog Activity得到答复。引用comment of Albin

        DialogActivity 的清单中添加 launchMode="singleInstance"

        【讨论】:

          猜你喜欢
          • 2016-06-27
          • 1970-01-01
          • 2015-03-07
          • 1970-01-01
          • 2015-11-17
          • 2023-03-13
          • 1970-01-01
          • 2011-07-15
          • 1970-01-01
          相关资源
          最近更新 更多