更改权限设置后,从最近的任务重新打开时会调用onCreate()

Wen*_*hao 10 android android-fragments android-permissions android-6.0-marshmallow

问题标题可能听起来很复杂,但这是我的情况.

我在活动中有一个地图片段.简单.打开存储权限以允许显示Map,工作正常.通过按Home键来关闭应用程序,然后关闭存储权限并从最近的任务打开应用程序,应用程序崩溃.

问题是不是调用主机Activity的onResume(),而是在主机Activity上调用onCreate()以及Map片段的onCreateView().因此它抛出异常.

当更改权限并因此重新创建Activity时,似乎应用程序进程被杀死.

    09-24 14:42:55.071: E/AndroidRuntime(12918):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
09-24 14:42:55.071: E/AndroidRuntime(12918): Caused by: 
java.lang.NullPointerException: Attempt to write to field 'int android.support.v4.app.Fragment.mNextAnim' on a null object reference
09-24 14:42:55.071: E/AndroidRuntime(12918):    at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:718)
09-24 14:42:55.071: E/AndroidRuntime(12918):    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1489)
09-24 14:42:55.071: E/AndroidRuntime(12918):    at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:548)
Run Code Online (Sandbox Code Playgroud)

来自Activity的super.onStart()

Wen*_*hao 0

现在可行的解决方案是调用getSupportFragmentManager().popBackStackImmediate();Activity 的 onCreate() 来防止尝试重新创建地图片段。

popBackStack() 在这种情况下不起作用,因为它是异步的。