2011-09-21 81 views
0

我們遇到了FragmentViewPager和Fragments問題。Android FragmentVIewPager和屏幕重新繪製問題

我們使用CursorLoader在Fragment中填充列表。視圖尋呼機由4頁組成。

基本上從一個片段刷卡到另一個時,它工作得很好,但一旦我們拉的數據從服務中說片斷A和輕掃到B片段,然後C等,片段中的列表會顯示上下文不加載,即空白屏幕,但如果設備的屏幕關閉,然後在Fragment中的列表中顯示數據。

在遊標加載器的onLoadFinished方法中,我們在每次刷新時重置適配器。

我很難找到解決方案。有什麼建議?

附加信息,我也有時收到這個堆棧跟蹤。

09-21 15:20:44.489:信息/ dalvikvm(21106): Landroid /視圖/的ViewRoot $ CalledFromWrongThreadException ;:只有創建視圖層次可以觸摸的意見 原來的線程。 09-21 15:20:44.497:INFO/dalvikvm(21106):at android.view.ViewRoot.checkThread(ViewRoot.java:2932)09-21 15:20:44.497:INFO/dalvikvm(21106):在 android.view.ViewRoot.requestLayout(ViewRoot.java:629)09-21 15:20:44.501:INFO/dalvikvm(21106):at android.view.View.requestLayout(View.java:8267)09 -21 15:20:44.501: INFO/dalvikvm(21106):at android.view.View.requestLayout(View.java:8267)09-21 15:20:44.501: INFO/dalvikvm(21106):at (View.java:8267)09-21 15:20:44.501: INFO/dalvikvm(21106):at android.view.View.requestLayout(View.java:8267)09- 21 15:20:44.517: INFO/dalvikvm(21106):at android.widget.RelativeLayout.requestLayout(RelativeLayout.java:257) 09-21 15:20:44.517:INFO/dalvikvm(21106):at android.view.View.requestLayout (View.java:8267)09-21 15:20:44.517: INFO/dalvikvm(21106):at android.view.View.requestLayout(View.java:8267)09-21 15:20:44.517: INFO/dalvikvm(21106):at android.view.View.requestLayout(View.java:8267)09-21 15:20:44.517: INFO/dalvikvm(21106):at android.view.View.requestLayout( View.java:8267)09-21 15:20:44.517: INFO/dalvikvm(21106):at android.view.View.requestLayout(View.java:8267)09-21 15:20:44.517: INFO/dalvikvm(2110 6):at android.view.View.requestLayout(View.java:8267)09-21 15:20:44.517: INFO/dalvikvm(21106):at android.view.View.setFlags(View.java: 4641)09-21 15:20:44.517: INFO/dalvikvm(21106):at android.view.View.setVisibility(View.java:3116)09-21 15:20:44.517: INFO/dalvikvm(21106 ):at android.widget.AdapterView.updateEmptyStatus(AdapterView.java:713) 09-21 15:20:44.517:INFO/dalvikvm(21106):at android.widget.AdapterView.checkFocus(AdapterView.java:697 )09-21 15:20:44.517:INFO/dalvikvm(21106):at android.widget.AdapterView $ AdapterDataSetObserver.onInvalidated(AdapterView.java:812) 09-21 15:20:44.525:INFO/d alvikvm(21106):在 android.database.DataSetObservable。notifyInvalidated(DataSetObservable.java:43) 09-21 15:20:44.525:INFO/dalvikvm(21106):at android.widget.BaseAdapter.notifyDataSetInvalidated(BaseAdapter.java:54) 09-21 15:20:44.525 :INFO/dalvikvm(21106):at android.widget.CursorAdapter $ MyDataSetObserver.onInvalidated(CursorAdapter.java:391) 09-21 15:20:44.525:INFO/dalvikvm(21106):at android.database.DataSetObservable .notifyInvalidated(DataSetObservable.java:43) 09-21 15:20:44.525:INFO/dalvikvm(21106):at android.database.AbstractCursor.deactivateInternal(AbstractCursor.java:89) 09-21 15:20: 44.525:INFO/dalvikvm(21106):at android.database.AbstractCursor.close(AbstractCursor.java:108)09-21 15:20:44.525:INFO/dalvikvm(21106):at android.database.sqlite.SQLiteCursor.close(SQLiteCursor.java:504) 09-21 15:20:44.525:INFO/dalvikvm(21106):at android.database.sqlite.SQLiteCursor.finalize(SQLiteCursor.java:594) 09-21 15:20:44.525:INFO/dalvikvm(21106):在 dalvik.system.NativeStart.run(本機方法)

感謝,

阿克沙伊

回答

0

我們似乎已經想通了,爲什麼發生這種情況的原因,但真的沒有一個解釋,也許有人可以詳細說明這一點。

來自服務器的響應使用片段中的服務+ ResultReceiver來通知UI後臺httpservice完成,在活動中使用時工作正常,但有片段從處理程序中的任何掛接到UI導致用戶界面崩潰,就好像UI更改是由單獨的線程創建的,在日誌中沒有一致的投訴,除了偶爾出現的錯誤之外。一旦我們在結果接收器中使用一個處理程序來通知UI發生更改,我們就不會再面臨這個問題。

Akshay