我有一条消息通知,当用户选择通知时,将显示消息显示活动。
当用户阅读邮件并按后退键关闭活动时,我想检查上一个活动是否是同一个应用程序,如果是,请继续,如果没有,我想开始此应用程序的主页活动
我该怎么做?
答案 0 :(得分:1)
如何:让通知在主动作启动MessageDisplayActivity的状态下启动Home Activity。即:(1)通知发送的意图应该以HomeActivity为目标,并包含一个额外的标志,用于标识来自通知的Intent。 (2)HomeActivity,在onCreate()中,在找到该标志后,只需启动MesssageDisplayActivity。
因此,HomeActivity将存在一段短暂的时间,但可能不够长,无法显示。然后它将保留在后面的堆栈上,这样后面的钥匙就能带你到那里。
答案 1 :(得分:0)
您应该考虑更改Activity
的{{3}},以便永远不会遇到此问题 - 使用singleTask
或singleInstance
时应始终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]
}
}
(假设通知只会由一个应用创建)。