2016-10-19 1 views
0

非同期Jsonフィードは、sqllite DBからデータをロードするためのAyncTasksより後で終了します。それらを同期させる方法とそれ以上の解決策を教えてください。Async Jsonフィードは、sqllite DBからデータをロードするためのAyncTasksより後で終了します。それらをより良く解決するには?

StackOverFlowを検索しましたが、私のようなこのような特殊な問題は見つかりませんでした。

私のアプリでは、すべてのデータは、モバイル自体に存在するsqllite DBからユーザーに表示されます。 sqlite DBのデータは、ボタンをクリックするとAsyncTask JSONフィードを使用して作成されます。私の場合、データをダウンロードするAsyncTaskはバックグラウンドで開始されますが、ユーザーは既にデータを見るためにリストフラグメントに上陸しています。ユーザーがダウンロードを完了するのを待たずに済むように、私はAsyncタスクでもこれを実装しました。さて、この非同期タスクは、データを表示して非同期データをダウンロードして挿入する前に完了しました。これは、ユーザーが常に古いデータを参照し、新しいデータを表示するために戻る必要があることを意味します。この特有の問題に対する解決策はどれも評価されるだろう。ありがとう。

+0

フィードが複数のオブジェクトで構成されている場合は、タスクをいくつかの小さなタスクに分けて、それらを読み込むごとに1つずつ表示できますか? –

+0

フィードは1つのオブジェクトのみを返し、リストはユーザーに同じものを表示します(ただし、フィードから直接ではなくデータベースから)。 –

+0

アクティビティからdbテーブルの変更をリッスンし、変更が検出されるたびにre-QUERYを実行します。したがって、ネットワークコールはdbテーブルに保存するだけで、再度QUERYを起動します。 –

答えて

0

ハンドラを2つの非同期タスク間の会話メカニズムとして実装することで、これを解決できます。私はこのポストの助けを借りました。 DBインサートが非同期タスクに終わると、呼び出されたプログラムにメッセージを送信してアダプタのリストをリセットします。 誰にも助けてくれてありがとう。 https://stackoverflow.com/a/26139605/5845259

関連する問題