1. 程式人生 > >Android開發問題之Fragment not attached to Activity

Android開發問題之Fragment not attached to Activity

1、問題的發生

該錯誤經常發生在fragment的執行緒中執行了一個耗時操作,執行緒在執行完畢後會呼叫getResources來更新ui。如果線上程操作沒有完成,就呼叫getActivity().recreate()重新載入activity或螢幕旋轉,這時就會出現Fragment not attached to Activity的錯誤

2、問題解決

在呼叫getResources更新ui的地方新增判斷

if(isAdded()){
   resultTv.setText(getResources().getText(R.string.hello_world));
}

isAdded()方法可以判斷當前的Fragment是否已經新增到Activity中,只有當Fragment已經新增到Activity中時才執行getResources()等方法。