【问题标题】:back button's function on first activity第一个活动的后退按钮功能
【发布时间】:2018-06-30 14:30:56
【问题描述】:

通常当单击后退按钮时,它会转到上一个活动,如果当前活动是第一个活动,则应用程序关闭。

我有一个初始屏幕(逻辑上这是我的第一个活动),然后加载菜单活动。

我想在我的菜单活动上按下后退按钮时关闭程序(就像它是第一个活动一样)并避免再次返回启动屏幕,但我知道我不应该退出程序。

我想知道第一个活动的后退按钮的功能是什么? 它会让程序暂停吗?

【问题讨论】:

  • @Nuwan94 最佳解决方案 +1....但我建议添加一个包含初始屏幕的视图组,并将其显示在他的菜单活动 using Handler 中一段时间​​,然后将其隐藏
  • @Ashkan 在启动 firstactivity 代码后在初始屏幕活动中添加 finish() 代码。

标签: android android-activity back-button


【解决方案1】:
  1. Avoid splash screens!

  2. 不要将您的启动画面用作主要活动,而是将菜单活动用作主要活动,并在onCreate()中链接启动画面活动,该活动将永远关闭并消失。

【讨论】:

  • 第一点,这篇文章来自 2012 年,是一个 POV。但是考虑一下是否需要从 RESTful URL 加载一些资源。对于第二个我同意。主要活动是主要活动。闪屏就是闪屏。
【解决方案2】:

当从第一个 Activity 启动新的 Activity 时,第一个 Activity 会一直执行到 onStop() 方法,然后它会停止并等待重新启动,除非你通过调用 .finish() 杀死它,在这种情况下启动的 Activity 将成为第一个 Activity 并且后退按钮将在后退按钮按下时最小化应用程序。为了控制应用程序在按下后退按钮时执行的操作,您可以在您的活动中覆盖此方法并实现您自己的自定义行为:

@Override
public void onBackPressed() {
    super.onBackPressed()
}


片段/活动的生命周期如何工作的很好的例子如下图所示:


希望这可以帮助。祝你好运。

【讨论】:

    【解决方案3】:

    当您在 SplashScreen 上时,在调用您的菜单活动的方法上,我假设您正在执行类似 startActivity (new Intent (this, MenuActivity.class)); in JavastartActivity(Intent(this, MenuActivity::class.java)) for Kotlin 的操作,就在调用 finish() 之后,这将删除您的后台堆栈中的闪屏

    【讨论】:

      【解决方案4】:

      将此属性添加到您的启动活动(在清单中):

      android:excludeFromRecents="true"

      按回按每个活动,将控制权转移到堆栈(后堆栈)中未从“最近”中排除的上一个活动。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多