当isDetached()返回false时,getActivity()返回null

Ser*_*gey 4 android fragment android-activity

曾几何时,我的调试器在Log.d上遇到了断点:

@Override
public void onDataChanged(DataTypeChanged dataType) {
    if (!isDetached()) {
        if(getActivity()==null){
            Log.d(CommonConstants.DEBUG_TAG, "Yes, it is null.");
        }
        List<WeekViewCoreTask> tasks = DataProvider
                .getWeekViewCoreTasks(getActivity().getApplicationContext());

        mWeekView.setTasks(tasks);
    }
}
Run Code Online (Sandbox Code Playgroud)

当isDetached()返回false时,getActivity()返回null

我以为这永远不会发生.如何发生这种情况:当isDetached()返回false时,getActivity()返回null?

Nas*_*eek 7

不是100%肯定这个,但根据Android文档,isDetached()只有Fragment在已明确脱离它的情况下才会返回true Activity.但是,有些其他原因Fragment的父Activity可能为null.最好是调用isAdded以检查Fragment当前是否附加到其中Activity