getActivity 在片段 onActivityCreated 中返回 null

问题描述 投票:0回答:1

我的应用程序在大多数设备上运行良好,除了在某些地方甚至在片段的 onActivityCreated 中,getActivity 方法不断返回

null
。我需要 Context 类来设置东西。

所以有人可以帮助我吗?

更新

public class BaseProductFragment extends Fragment {

...

public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View rootView = inflater.inflate(layout_id, container,
            false);
    return rootView;
}

public void onActivityCreated(final Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    ImageCacheParams cacheParams = new ImageCacheParams(getActivity(),
            Utils.PRODUCTS_CACHE_DIR);
    ....
}
android android-fragments
1个回答
5
投票

这与设备是否被 root 无关,这是一个竞争条件。

getActivity
“可能”返回
null
,即使从内部调用
onActivityCreated
...特别是在配置更改期间,例如方向更改,因为活动被破坏...将初始化移动到
onAttach
...

@Override
public void onAttach(Activity activity) {
    super.onAttach(activity);
    //initialize here
}

onActivityCreated
是在调用父活动的
onCreate
时调用的...但请记住它可以“重新创建”,在配置更改期间销毁

© www.soinside.com 2019 - 2024. All rights reserved.