gpt4 book ai didi

android - onCreate() 在权限设置更改后从最近的任务重新打开时被调用

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:14:00 25 4
gpt4 key购买 nike

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

我在 Activity 中有一个 map fragment 。简单的。打开存储权限以允许显示 map ,工作正常。通过按主页按钮使应用程序后台运行,然后关闭存储权限并从最近的任务中打开应用程序,应用程序崩溃。

问题不是调用主机 Activity 的 onResume(),而是在主机 Activity 上调用 onCreate() 以及 Map fragment 的 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)

来自 Activity 的 super.onStart()

最佳答案

我在应用程序权限的动态更改方面遇到了类似的问题。经过一番挖掘后,我的理解可能对您也有帮助。

更改权限会导致系统终止您的应用程序,现在如果您从概览屏幕打开您的应用程序,它将重新启动您的应用程序,这是导致崩溃的主要原因,因为您可能正在对 fragment 对象执行操作,这现在为空。

这里要注意的重要一点是,在终止之前, fragment 状态保存在 savedinstance 对象中。

要停止崩溃,您应该使用这行代码获取 fragment 实例 -

mapFragment = (MapFragment)getSupportFragmentManager().findFragmentByTag("MAP FRAG");

这里“MAP FRAG”是你必须给你的 fragment 的标签。

如果您有任何困惑,请分享。

关于android - onCreate() 在权限设置更改后从最近的任务重新打开时被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32751667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com