onResume() 是在 Android 中的 onRequestPermissionsResult() 之后调用的吗?
Is onResume() called after onRequestPermissionsResult() in Android?
我有一个 activity 并且我在 onCreate
方法中放入了 checkSelfPermission
和 requestPermissions
方法。
我在 onCreate 之外还有一个 onRequestPermissionsResult
方法。
我终于有了一个 onResume
方法。
先调用哪个,onResume
还是onRequestPermissionsResult
?
onResume()
将在您的 Activity
启动期间首先调用,因为 onRequestPermissionsResult(...)
只会在用户在权限请求对话框中接受或拒绝应用程序权限后调用。但是在调用 onRequestPermissionsResult(...)
之后再次调用 onResume 以允许您的 activity 考虑用户选择(授予或拒绝权限)并相应地执行代码
onCreate
在 activity 首次启动时首先调用且仅调用一次。
onResume
在 onCreate
之后或在 activity return 暂停后直接调用。
和 onRequestPermissionsResult
在用户确认权限后调用。
结论:onResume
在onRequestPermissionsResult
之前被调用。
您可以阅读有关 Activity LifeCycle https://developer.android.com/guide/components/activities/activity-lifecycle.html
如果对您有帮助,请标记为已回答。
正确的事件链如下:
您在 Activity 的 onCreate
中调用 requestPermissions
requestPermissions
在另一个线程中开始运行,因为它是
旨在不阻塞 UI 线程。所以你的 activity 通过 onStart 然后 onResume
权限请求生成对话框,触发
onPause on the Activity,因为它不再处于前台位置。
此时activity暂停,可以看到一个对话框
询问允许或拒绝权限。
你做出选择,对话框得到解决,onResume
拜访了 Activity.
另请注意,对话框总是在 onStart 和 onResume 之后触发 onPause Activity,无论执行其中的代码需要多长时间。
现在您还可以了解为什么不应该将 requestPermissions 放在 onResume.
中
第一个是onRequestPermissionsResult
!
我在 onPause()
上销毁了一些对象,它将在 onResume()
上重新创建,但我发现我的 onRequestPermissionsResult()
操作了一些被销毁的对象并导致 NullPointEx
我有一个 activity 并且我在 onCreate
方法中放入了 checkSelfPermission
和 requestPermissions
方法。
我在 onCreate 之外还有一个 onRequestPermissionsResult
方法。
我终于有了一个 onResume
方法。
先调用哪个,onResume
还是onRequestPermissionsResult
?
onResume()
将在您的 Activity
启动期间首先调用,因为 onRequestPermissionsResult(...)
只会在用户在权限请求对话框中接受或拒绝应用程序权限后调用。但是在调用 onRequestPermissionsResult(...)
之后再次调用 onResume 以允许您的 activity 考虑用户选择(授予或拒绝权限)并相应地执行代码
onCreate
在 activity 首次启动时首先调用且仅调用一次。
onResume
在 onCreate
之后或在 activity return 暂停后直接调用。
和 onRequestPermissionsResult
在用户确认权限后调用。
结论:onResume
在onRequestPermissionsResult
之前被调用。
您可以阅读有关 Activity LifeCycle https://developer.android.com/guide/components/activities/activity-lifecycle.html
如果对您有帮助,请标记为已回答。
正确的事件链如下:
您在 Activity 的 onCreate
中调用 requestPermissions
在另一个线程中开始运行,因为它是 旨在不阻塞 UI 线程。所以你的 activity 通过 onStart 然后 onResume权限请求生成对话框,触发 onPause on the Activity,因为它不再处于前台位置。
此时activity暂停,可以看到一个对话框 询问允许或拒绝权限。
你做出选择,对话框得到解决,onResume 拜访了 Activity.
requestPermissions
另请注意,对话框总是在 onStart 和 onResume 之后触发 onPause Activity,无论执行其中的代码需要多长时间。
现在您还可以了解为什么不应该将 requestPermissions 放在 onResume.
中第一个是onRequestPermissionsResult
!
我在 onPause()
上销毁了一些对象,它将在 onResume()
上重新创建,但我发现我的 onRequestPermissionsResult()
操作了一些被销毁的对象并导致 NullPointEx