按下后退时活动发生了什么

时间:2017-05-25 15:21:40

标签: android android-activity

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

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

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

我对所有人感到困惑,虽然我已经阅读过该方法,但我无法将其与我的项目联系起来。

基本上A活动的用户执行某项任务,当用户返回父活动然后再执行一些其他任务时,再次进入A活动,那么某些任务也必须执行?

那么哪种方法适合?

3 个答案:

答案 0 :(得分:2)

修改

OP编辑了问题

  

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

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

后退按钮(红色圆圈)将您带到您所在的最后一个位置。

所以,每当你按下按钮(< Up)时,当前的活动就会被破坏,onDestroy被调用,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

答案 1 :(得分:0)

听起来很明显,当按下后退按钮时调用的方法是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()方法

答案 2 :(得分:0)

按下后退按钮时将调用的生命周期方法

  • 的onPause()

  • 的onStop()

因此,当前的活动仍将处于堆叠状态,但它已被清除。 因此,如果用户转到活动,它将调用onRestart()方法。