【问题标题】:How do you close an android app after pressing back on the phone按下手机后如何关闭Android应用程序
【发布时间】:2020-01-22 12:26:13
【问题描述】:

在我的应用上,我想在到达 mainActivity 时关闭应用。目前我没有向清单中的所有活动添加 noHistory,因为我正在根据我希望应用程序的流动方式覆盖导航。

我会在 onBackPressed 函数中添加什么代码来关闭应用程序?

我的问题是我不想使用 noHistory,因为在应用程序之间移动或最小化应用程序时,应用程序会在您打开它时再次从启动屏幕加载,这对导航没有帮助

注意:我也实现了启动画面。

【问题讨论】:

    标签: android-studio kotlin


    【解决方案1】:

    根活动可以使用带有特定请求代码常量的startActivityForResult。下一个活动可以在其onCreate 中调用setResult(RESULT_OK, Intent())(不确定这一步是否必要)。然后回到第一个活动,覆盖onActivityResult 并调用finish(),如果请求代码与您在startActivityForResult 调用中使用的代码匹配。

    无需覆盖onBackPressed

    或者,根活动可以简单地在startActivity() 之后立即调用finish()。然后它根本不会在后堆栈中。

    【讨论】:

      【解决方案2】:

      您可以在onBackPressed() 中致电finish()。应该够了。 或者,您可以致电System.exit(0)

      更多: Difference between finish() and System.exit(0)

      【讨论】:

      • 我已经尝试了finish() 选项,但它仍然会加载以前的活动,我需要将它添加到每个活动中吗?请记住,我不想使用 noHistory,因为如果我这样做的话,多任务处理会将我带回初始屏​​幕。如果我将 finish() 添加到每个活动中,那么这是否会阻止 firestore 快照运行,因为我有链接到 snapshopts 的通知。
      • @WaseemAhmed,通常在SplashActivity 中调用finish(),当您在SplashActivity 之后启动“主要”活动时。并在您的“主”/“根”活动的onBackPressed() 中调用finish()。 (要关闭整个应用程序,请使用System.exit(0)
      【解决方案3】:

      答案是所有的组合,但简单得多,但有点麻烦。

      我真正需要做的是在每个活动中添加startActivity 的地方添加startActivity,根据页面中的操作,这可能是多个。

      这最终允许导航回到主页面,并在关闭时“最小化”手机应用程序抽屉中的应用程序。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-25
        • 1970-01-01
        • 1970-01-01
        • 2012-05-10
        • 1970-01-01
        • 2015-08-02
        相关资源
        最近更新 更多