【问题标题】:What happened to activity when back is pressed [duplicate]按下后退时活动发生了什么[重复]
【发布时间】:2017-05-25 15:21:40
【问题描述】:

对于专家来说非常简单,但我不知道如何搜索。所以我的问题是

按下后退箭头(不是菜单/软后退按钮)转到主页/父活动时会创建哪种方法?? 我说的是绿色圆圈按钮而不是红色圆圈按钮

onStop(),onPause()还是onRestart()??

我对所有人都感到困惑,虽然我已经阅读了该方法,但我无法将其与我的项目链接。

基本上用户在 A 活动上执行一些任务,当用户返回父活动然后再次执行一些其他任务时,当再次来到 A 活动时,还必须执行一些任务?

那么哪种方法适合呢?

【问题讨论】:

  • 试着澄清你的情况。还添加您尝试过的内容。您可能需要有用的activity lifecycle。另外,“按下后退箭头(不是菜单/软后退按钮)”是什么意思?你指的是up navigation吗?
  • 我已经编辑了我的帖子

标签: android android-activity


【解决方案1】:

编辑

当 OP 编辑​​问题时

所以它是关于“Action Bar 后退按钮有什么区别 和导航返回按钮"

ActionBar“后退”按钮(绿色圆圈)是一个"Up" 按钮,它将带您回到应用导航层次结构的上一级。

返回按钮(红色圆圈)将您带到您上一次所在的位置。

因此,每当您按下返回按钮 (onDestroy 并且会为将在堆栈上出现的 Activity 调用 onCreate

请参阅此链接了解更多信息: http://developer.android.com/design/patterns/navigation.html


以下方法在按下返回按钮后被串行调用。

onPause()
onStop()
onDestroy() //Activity destroyed.

这些方法在活动启动时被调用。

onCreate()
onStart()
onResume()

更多信息请参考:

https://developer.android.com/guide/components/activities/activity-lifecycle.html

【讨论】:

  • 我已经编辑了我的帖子
  • 清除了对向上按钮的疑虑!!!!但是后退按钮(红色圆圈)是什么?是onPause() 然后是onRsume()
  • 会尝试,如果有效,我会接受答案!!!
【解决方案2】:

听起来很明显,按下后退按钮时调用的方法是onBackPressed()

@Override
    public void onBackPressed() {
        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        if (drawer.isDrawerOpen(GravityCompat.START)) {
            drawer.closeDrawer(GravityCompat.START);
        } else {
            super.onBackPressed();
        }
    }

由于我的 Activity 实现了一个导航抽屉,它确实管理它,如果它是打开的并且你按下后退按钮,它将关闭

当然,随着活动结束,onPause()onStop() 方法会被调用。

当活动再次恢复时,onResume() 方法将被调用

【讨论】:

  • 我已经编辑了我的帖子
【解决方案3】:

按下返回按钮时将调用的生命周期方法是

  • onPause()

  • onStop()

所以当前活动将仍然在堆栈中,除非它被清除。 因此,如果用户再次进入活动,它将调用 onRestart() 方法。

【讨论】:

  • 我已经编辑了我的帖子
猜你喜欢
  • 2023-03-29
  • 2013-08-08
  • 2021-12-18
  • 1970-01-01
  • 2017-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多