Android Activity LifeCycle-何时调用“ onPause”?

时间:2019-11-18 15:54:10

标签: android android-activity lifecycle

我是一名Android应用程序开发人员。

我以为我知道这项活动的生命周期。

但是...我现在很困惑。

根据官方文档: https://developer.android.com/guide/components/activities/activity-lifecycle.html#onpause

“ onPause”在部分不可见时被调用。

  

将打开一个新的半透明活动(例如对话框)。只要该活动仍然部分可见但不清晰,它便会暂停。

所以我认为如果打开对话框,则活动将暂停。

我做了一些示例代码来证明这一点。

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        btn.setOnClickListener {
//            1. AlertDialog
//            AlertDialog.Builder(this)
//                .setTitle("TEST")
//                .show()

//            2. DialogFragment
//            val dialog = TestFragment()
//            supportFragmentManager.beginTransaction().add(dialog, "").commit()
        }
    }

    override fun onPause() {
        super.onPause()
        Log.d("TEST", "[LifeCycle] onPause")
    }

当我单击“ btn”时,将打开Dialog / DialogFragment。 但是“ onPause”日志没有打印出来。

我很困惑...

正式文件不正确吗?

1 个答案:

答案 0 :(得分:2)

它也指出

  

系统调用此方法作为用户离开活动的第一个指示[...],表明活动不再在前台

您自己的活动中的对话框不会暂停它。只有包含对话框的新活动才会暂停第一个活动。