Android Activity LifeCycle - 何时调用 'onPause'?
Android Activity LifeCycle - when 'onPause' is called?
我是一名 Android 应用开发者。
我以为我知道 activity 的生命周期。
但是...我现在很迷茫
根据官方文档:
https://developer.android.com/guide/components/activities/activity-lifecycle.html#onpause
'onPause' 在部分不可见时调用。
A new, semi-transparent activity (such as a dialog) opens. As long as the activity is still partially visible but not in focus, it remains paused.
所以我认为如果打开一个对话框,那么 activity 就会暂停。
我做了一些示例代码来证明这一点。
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'日志没有打印出来。
我很困惑...
官方文档有误吗?
它还指出
The system calls this method as the first indication that the user is leaving your activity [...] it indicates that the activity is no longer in the foreground
您自己的 activity 中的对话不会暂停。只有包含对话框的新 activity 才会暂停第一个对话框。
我是一名 Android 应用开发者。
我以为我知道 activity 的生命周期。
但是...我现在很迷茫
根据官方文档: https://developer.android.com/guide/components/activities/activity-lifecycle.html#onpause
'onPause' 在部分不可见时调用。
A new, semi-transparent activity (such as a dialog) opens. As long as the activity is still partially visible but not in focus, it remains paused.
所以我认为如果打开一个对话框,那么 activity 就会暂停。
我做了一些示例代码来证明这一点。
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'日志没有打印出来。
我很困惑...
官方文档有误吗?
它还指出
The system calls this method as the first indication that the user is leaving your activity [...] it indicates that the activity is no longer in the foreground
您自己的 activity 中的对话不会暂停。只有包含对话框的新 activity 才会暂停第一个对话框。