【问题标题】:Android: Phone Back Button on Main Activity [duplicate]Android:主要活动上的电话返回按钮[重复]
【发布时间】:2020-01-10 17:26:51
【问题描述】:

当我在我的应用程序的 MainActivity 中并按下手机返回按钮并再次打开应用程序(之前没有关闭它)时,主 Activity 被加载新的。

当我单击手机主页按钮上的返回按钮而不是返回按钮时,不会发生这种情况。因此,当我再次打开应用程序(例如单击图标)时,一切都保持在单击主页按钮之前的状态。

如何避免在单击返回按钮然后再次打开应用程序时重新加载所有内容?

如果你不明白我的意思:

左边的按钮是我所说的“后退按钮”,中间的那个是“主页按钮”。

【问题讨论】:

    标签: android user-interface button


    【解决方案1】:

    onBackPressed 通过覆盖函数被调用时,我可能会通过保存实例状态来实现这一点。这是按下后退按钮时调用的函数,默认行为是完成活动,这就是您看到此行为的原因。

    见:https://developer.android.com/reference/android/app/Activity#onBackPressed()

    【讨论】:

    • home键有类似的功能吗?这样我就可以复制它的内容并粘贴到 onBackPressed 方法中。
    • home键没有这个功能,但是按下home键会导致onPause()和onStop()被调用(有时onDestroy()也会被调用)。调用 onBackPressed 时的不同之处在于它肯定调用了 onDestroy()。您可能只想将应用程序状态保存在 onDestroy() 中,然后在应用程序恢复时重新加载它。您应该查看 Android 生命周期文档:developer.android.com/guide/components/activities/…
    • 嘿,非常感谢。现在我找到了解决方案。这不是你的,但你覆盖 onBackPressed 方法的提示让我找到了解决方案!
    • 很高兴听到!我不知道moveTaskToBack(),所以感谢您向我介绍它:)
    【解决方案2】:
    @Override
    public void onBackPressed() {
        // Behaves like you would have pressed the home-button
        moveTaskToBack(true);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-29
      • 1970-01-01
      • 2019-05-14
      • 1970-01-01
      • 2012-11-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多