我试图在permison更改过程中试图了解App及其组件的生命周期。
假设:
targetSdk = 23
compileSdk = 23
假设我的应用程序打开并显示片段,并进行设置并撤消权限。
我的理解是该进程已重新启动,但是没有调用任何Fragments生命周期方法(onCreateView等...),这会导致我的测试工具应用程序在返回应用程序时遇到崩溃。
我在撤销权限后返回片段上的按钮,然后:
'android.os.IBinder android.widget.EditText.getWindowToken()' on a null object reference
此代码用于隐藏屏幕键盘(如果需要),我可以根据需要将其删除,但这里的问题是,如果重新启动进程,重新创建片段的原因是什么?
编辑:进行了更多记录。所以看起来片段/活动正在调用生命周期方法,但似乎重新初始化并不是真正完整的。
答案 0 :(得分:2)
从应用设置中撤消权限时 - 活动重启及其所有组件也会重新启动。 但是在onCreate(...)savedInstanceState中,它不等于null。
因此你可以使用这样的黑客:
if (savedInstanceState != null) {
...
}