android:bug Fragment not attached to Activity ,fragment not attached to a context.

網上說是activity重建的時候,假如fragment還在使用諸如context,就會出現這個問題,比如說突然橫屏,fragment裏面正在訪問網絡接口,使用了  new ProgressDialog(context, R.style.waitting_dialog);來進行等待,就會崩潰,Fragment not attached to a context。可以在fragment內部,使用isAdded()來判斷是否fragment和activity綁定。

這和我碰到的問題不太一樣,我activity沒有重建,也沒橫屏,在初始化的時候就崩潰了,出現這個bug。是因爲viewPager最初就屬於GONE狀態,未被繪製加載,但是fragment已經建立了,使用了context獲取顏色,就會崩潰,fragment not attached to a context.

 

解決辦法,把viewPager或者包含ViewPager的ViewGroup在layout文件中設置成顯示 VISIBLE,然後在界面加載後,使用

Handle handle = new Handle; 

handle.postDelayed(new Runable() {pubic void run() { view.setVisible(View.gone); }}, 200);

這樣獲取顏色或者drawable之類的就可以了,然後網絡框架,等待提示的dialog所需要的context建議使用弱引用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章