我有一项 Activity ,我已将 checkSelfPermission
和 requestPermissions
方法放在 onCreate
方法中。
我在 onCreate 之外还有一个 onRequestPermissionsResult
方法。
最后我也有一个 onResume
方法。
onResume
或 onRequestPermissionsResult
哪个先被调用?
最佳答案
正确的事件链如下:
您在 Activity 的 onCreate
中调用requestPermissions
requestPermissions
开始在另一个线程中运行,因为它是 旨在不阻塞 UI 线程。所以您的 Activity 通过 onStart 然后是 onResume权限请求生成一个对话框,该对话框触发 onPause 在 Activity 上,因为它不再处于前台位置。
此时activity暂停,可以看到一个对话框 询问是否允许该权限。
您做出选择,对话框得到解决并且 onResume 是 调用了 Activity。
另请注意,onPause 总是在 Activity 的 onStart 和 onResume 之后由对话框触发,无论它需要多长时间执行其中的代码。
现在您还可以了解为什么不应该将 requestPermissions 放在 onResume 中。
关于java - onResume() 是在 Android 的 onRequestPermissionsResult() 之后调用的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43777182/