android - ListFragment 和 onActivityCreated 调用了两次

标签 android android-fragments

我有一个 listFragment 这是我的 onActivityCreated:

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    if (savedInstanceState != null) {
        utenti=savedInstanceState.getParcelableArrayList("array");
    }else{
        threadutenti= (GetUtenti) new GetUtenti(this.getActivity(), utenti).execute();
    }

当我旋转我的设备时,我首先 savedInstanceState 非空(我明白了)但是在调用 onActivityCreated 之后 onActivityCreated 为空!!为什么?我想让我的对象在 ListFragment 上而不是在我的 Activity 上..

最佳答案

如果您总是在 Activity#onCreate() 回调中创建新 fragment ,就会发生这种情况。
如果是真的,检查this answer .您的Fragment#onActivityCreated 将被调用两次:

  • 第一次由 FragmentActivity#onStart 调用 mFragments.dispatchActivityCreated() 触发。它将传递保存的实例。
  • 第二次由 FragmentActivity#onStart 调用 mFragments.execPendingActions() 触发。这次没有保存实例(因为调用它是为了响应新的 fragment 添加)。

关于android - ListFragment 和 onActivityCreated 调用了两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15245036/

相关文章:

java - ArrayList迭代器消除崩溃

java - 当点击回收器 View 中的 +/- 按钮时,处理学生考勤管理器应用程序会崩溃

android - Thread.Sleep() Android 用户界面

android - onLoadFinished 在返回之前不会在屏幕外 fragment 上调用

java - 为所有 fragment 保持蓝牙服务运行

java - 如何切换到另一个 Activity 以及更改该 Activity 中的 fragment ?

java - CoordinatorLayout 内的 RecyclerView 内的水平 RecyclerView

java - 如何在android中解析列表?

android - 避免在 Pager Sliding Tab 中加载所有 fragment

android - 如何在android中以编程方式为 View 设置动画?