如果在按下后退键时没有为此Android应用程序生成其他活动,则启动root活动

时间:2011-12-11 05:35:47

标签: android android-activity

我有一条消息通知,当用户选择通知时,将显示消息显示活动。

当用户阅读邮件并按后退键关闭活动时,我想检查上一个活动是否是同一个应用程序,如果是,请继续,如果没有,我想开始此应用程序的主页活动

我该怎么做?

3 个答案:

答案 0 :(得分:1)

如何:让通知在主动作启动MessageDisplayActivity的状态下启动Home Activity。即:(1)通知发送的意图应该以HomeActivity为目标,并包含一个额外的标志,用于标识来自通知的Intent。 (2)HomeActivity,在onCreate()中,在找到该标志后,只需启动MesssageDisplayActivity。

因此,HomeActivity将存在一段短暂的时间,但可能不够长,无法显示。然后它将保留在后面的堆栈上,这样后面的钥匙就能带你到那里。

答案 1 :(得分:0)

您应该考虑更改Activity的{​​{3}},以便永远不会遇到此问题 - 使用singleTasksingleInstance时应始终Activity是您的应用程序中唯一开放的。

答案 2 :(得分:0)

让你的app中调用消息显示活动(MDA)的Intent传递一个布尔值" true"它被提取并存储在MDA中的一个字段中。将字段默认设置为" false。"因此,如果从应用程序中的活动调用MDA,则该字段的布尔值为" true,"如果从其他任何地方(例如通知)调用它,它将被设置为false。

在MDA中覆盖public void onBackPressed(),如下所示:

public void onBackPressed() {
    if (wasCalledFromYourApp == true) {
        super.onBackPressed();
    } else {
        //[code that launches your app's home activity here]
    }
}

(假设通知只会由一个应用创建)。