在M中撤销权限后的Android活动和片段生命周期

时间:2015-11-06 16:16:29

标签: android android-fragments android-permissions android-6.0-marshmallow

我试图在permison更改过程中试图了解App及其组件的生命周期。

假设:

  targetSdk = 23
  compileSdk = 23

假设我的应用程序打开并显示片段,并进行设置并撤消权限。

我的理解是该进程已重新启动,但是没有调用任何Fragments生命周期方法(onCreateView等...),这会导致我的测试工具应用程序在返回应用程序时遇到崩溃。

我在撤销权限后返回片段上的按钮,然后:

'android.os.IBinder android.widget.EditText.getWindowToken()' on a null object reference

此代码用于隐藏屏幕键盘(如果需要),我可以根据需要将其删除,但这里的问题是,如果重新启动进程,重新创建片段的原因是什么?

编辑:进行了更多记录。所以看起来片段/活动正在调用生命周期方法,但似乎重新初始化并不是真正完整的。

1 个答案:

答案 0 :(得分:2)

从应用设置中撤消权限时 - 活动重启及其所有组件也会重新启动。 但是在onCreate(...)savedInstanceState中,它不等于null。

因此你可以使用这样的黑客:

if (savedInstanceState != null) {
   ...
}