2014-01-29 31 views
4

一旦:getActivity()已isDetached時返回null()已經很久我調試器命中斷點Log.d返回false

@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); 
    } 
} 

getActivity() returns null when isDetached() returns false

我認爲這絕不可能發生。這可能如何發生:當isDetached()返回false時,getActivity()返回null?

+0

嗨謝爾蓋你是從活動擴展您的應用程序或Fragment.Please讓我知道這可能是最好的。如果從Activity擴展應用程序意味着您將調用getBaseActivity()而不是getActivity()。getApplicationContext()。如果您從Fragment擴展您的應用程序意味着您將使用getActivity()而不是getActivity()。getApplicationContext()。希望它對你有幫助。謝謝 – Jeba

+0

http://stackoverflow.com/questions/11536166/android-get-activity-returns-null檢查此 –

回答

6

對此不是100%肯定的,但根據Android文檔,isDetached()只會在FragmentActivity明確分開的情況下返回true。然而,Fragment的父活動可能爲空,還有其他幾個原因。改爲調用isAdded檢查,如果Fragment目前連接到其Activity

相關問題