【问题标题】:Return to second activity after clicking home button单击主页按钮后返回第二个活动
【发布时间】:2012-12-27 18:20:34
【问题描述】:

我已经尝试了所有的启动模式,但它似乎不起作用:

假设 App A 有各种活动,J & K。J 是第一个(选择应用模式),它在主要事情发生的地方调用 K(调用它之后,J finish()es)。如果我单击 K 中的“主页”按钮,然后再次打开应用程序,它会打开一个带有活动 J 的 A 的新实例。

我希望它改为打开暂停的 K 活动。其他线程提到了一个 Android 错误——有没有办法修复它?设置启动模式不起作用:S

非常感谢。

【问题讨论】:

  • 哦,奇怪的是:点击home后打开J时,点击返回会显示K的前一个实例。
  • 你想要的是正常的 Android 行为。它不起作用的事实意味着您可能正在做一些奇怪的事情。 不要尝试通过使用 launchModes 来解决这个问题。请张贴清单的相关部分。但是,有一个像这样表现出来的错误。要查看此错误是否导致您的问题,请执行以下操作:强制关闭手机上的应用程序。现在从手机上的应用程序列表启动您的应用程序。从 ActivityJ 转到 ActivityK。按主页。再次打开应用程序。如果它现在可以工作,那么您只是看到了可怕的 Android 启动错误。
  • 哇,是的,它成功了。这是Android启动错误。非常感谢,你很棒! (我会接受你的回答,但由于这是评论,我无法接受。)
  • 酷。我从我的评论中创建了一个答案。很高兴有帮助。我添加了一些错误问题的链接以供参考。

标签: android android-intent android-activity android-lifecycle


【解决方案1】:

试试这个

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) {
    // Activity was brought to front and not created,
    // Thus finishing this will get us to the last viewed activity
    finish();
    return;
}

// Regular activity creation code...
}

【讨论】:

  • 不,不起作用 :( 原因是您假设新的 J 活动与前一个活动相同,但它是一个新活动。旧的 J 意图是 finish()编辑。无论如何,谢谢!
【解决方案2】:

您想要的是正常的 Android 行为。它不起作用的事实意味着您可能正在做一些奇怪的事情。不要试图通过使用 launchModes 来解决这个问题。请张贴清单的相关部分。但是,有一个像这样表现出来的错误。要查看此错误是否导致您的问题,请执行以下操作:强制关闭手机上的应用程序。现在从手机上的应用程序列表启动您的应用程序。从 ActivityJ 转到 ActivityK。按主页。再次打开应用程序。如果它现在可以工作,那么您只是看到了可怕的 Android 启动错误。

有关启动错误的更多详细信息,请参阅以下问题:

http://code.google.com/p/android/issues/detail?id=2373

http://code.google.com/p/android/issues/detail?id=26658

所有设备、所有版本的 Android 上都存在该错误(至少到 ICS,尚未在 JellyBean 上测试过)。这一切都在模拟器中正常工作,因此您不能将模拟器行为用作真实设备行为的指示。

【讨论】:

    猜你喜欢
    • 2023-03-22
    • 1970-01-01
    • 2015-09-30
    • 2013-06-25
    • 2020-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-08
    相关资源
    最近更新 更多