曾几何时我的调试器在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);
}
}
我以为这永远不会发生。如何发生这种情况:当isDetached()返回false时,getActivity()返回null?
答案 0 :(得分:7)
对此不是100%肯定,但根据Android文档,isDetached()只有在Fragment
与其Activity
明确分离后才会返回true。但是,Fragment
的父Activity可能为null,还有其他几个原因。最好拨打isAdded
来检查Fragment
当前是否附加到Activity