gpt4 book ai didi

android - 在 onCreate 中完成 Activity 时,如何在 onCreate 之前调用我的 fragment 的 onCreateView?

转载 作者:太空宇宙 更新时间:2023-11-03 13:30:17 25 4
gpt4 key购买 nike

这很奇怪。我有一个简单的应用程序,一旦登录就会显示 Activity 中的一个 fragment 。该应用程序也有一个不活动的“超时”,在该时间之后它完成 Activity 并显示登录屏幕——如果超时发生时应用程序在后台,那么当下一个 onCreate onStart 事件发生在它完成的 Activity 中。

但是,有时当返回到已登录的 Activity 时,我会在 fragment 的 onActivityCreated 方法中得到一个 NPE。该 fragment 非常简单,只需调用 String 上的一个方法。字符串本身是通过调用 getArguments() 来检索的。我已经验证,无论何时创建 fragment ,参数总是被设置。

所以看起来 onActivityCreated 实际上在 fragment 中的 onCreate 之前被调用,我知道这应该是不可能的。下面是堆栈跟踪的一部分:

01-14 15:34:37.176: E/AndroidRuntime(3272):     at com.example.app.fragment.MyFragment.onActivityCreated(MyFragment.java:203)
01-14 15:34:37.176: E/AndroidRuntime(3272): at android.support.v4.app.Fragment.performActivityCreated(Fragment.java:1468)
01-14 15:34:37.176: E/AndroidRuntime(3272): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:931)
01-14 15:34:37.176: E/AndroidRuntime(3272): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088)
01-14 15:34:37.176: E/AndroidRuntime(3272): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1070)
01-14 15:34:37.176: E/AndroidRuntime(3272): at android.support.v4.app.FragmentManagerImpl.dispatchReallyStop(FragmentManager.java:1888)
01-14 15:34:37.176: E/AndroidRuntime(3272): at android.support.v4.app.FragmentActivity.onReallyStop(FragmentActivity.java:787)
01-14 15:34:37.176: E/AndroidRuntime(3272): at android.support.v4.app.FragmentActivity.doReallyStop(FragmentActivity.java:764)
01-14 15:34:37.176: E/AndroidRuntime(3272): at android.support.v4.app.FragmentActivity.onDestroy(FragmentActivity.java:322)
01-14 15:34:37.176: E/AndroidRuntime(3272): at com.actionbarsherlock.app.SherlockFragmentActivity.onDestroy(SherlockFragmentActivity.java:261)
01-14 15:34:37.176: E/AndroidRuntime(3272): at com.example.app.MyActivity.onDestroy(MyActivity.java:195)
01-14 15:34:37.176: E/AndroidRuntime(3272): at android.app.Activity.performDestroy(Activity.java:5273)
01-14 15:34:37.176: E/AndroidRuntime(3272): at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1110)
01-14 15:34:37.176: E/AndroidRuntime(3272): at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3562)

最佳答案

经过更多调试后,我发现异常发生是因为在调用 onActivityCreated() 之前使用了 getActivity() -- 此外在 getActivity() 并且该方法依赖于已创建的 Activity 。/白痴

关于android - 在 onCreate 中完成 Activity 时,如何在 onCreate 之前调用我的 fragment 的 onCreateView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14322014/

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