0

FragmentViewPager と Fragments に問題があります。

CursorLoader を使用して Fragment 内のリストを作成しています。ビューページャーは 4 ページで構成されています。

基本的に、あるフラグメントから別のフラグメントにスワイプするときは問題なく動作しますが、たとえばフラグメント A のコンテキストでサービスからデータを取得し、フラグメント B、C などにスワイプすると、フラグメント内のリストが読み込まれないように見えます。空白の画面ですが、デバイスの画面がオフになっている場合は、フラグメント内のリストにデータが表示されます。

カーソル ローダーの onLoadFinished メソッドでは、更新のたびにアダプターをリセットします。

私は解決策に困惑しています。何かアドバイス?

追加情報、このスタック トレースを受け取ることもあります。

09-21 15:20:44.489: INFO/dalvikvm(21106): Landroid/view/ViewRoot$CalledFromWrongThreadException;: ビュー階層を作成した元のスレッドのみがそのビューにアクセスできます。09-21 15:20:44.497: INFO/dalvikvm(21106): 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): android.view.View.requestLayout(View.java:8267) 09-21 15:20: 44.501: INFO/dalvikvm(21106): android.view.View.requestLayout(View.java:8267) 09-21 15:20:44.501: INFO/dalvikvm(21106): android.view.View.requestLayout(View) で.java:8267) 09-21 15:20:44.501: INFO/dalvikvm(21106): android.view.View.requestLayout(View.java:8267) 09-21 15:20:44.517: INFO/dalvikvm(21106) ): アンドロイドで。

ありがとう、

アクシャイ

4

1 に答える 1

0

これが発生する理由はわかったようですが、実際には説明がありません。誰かがこれについて詳しく説明できるかもしれません.

サーバーからの応答は、フラグメントで service+ResultReceiver を使用して、バックグラウンド httpservice の完了を UI に通知しました。これは、アクティビティで使用すると正常に動作しますが、フラグメントを使用すると、ハンドラーから UI へのフックが発生したため、UI がクラッシュしました。 UI の変更が別のスレッドから行われた場合、上記のような時折発生するエラーを除いて、ログに一貫した苦情はありません。結果のレシーバーでハンドラーを使用して UI に変更を通知すると、この問題に直面することはなくなりました。

アクシャイ

于 2011-09-25T19:07:11.983 に答える