1

わかりました、これは私の最初の投稿です、

ローカル db テーブルから取り込まれた ListView があります。そこから、Web サービスから利用可能な新しいデータがあるかどうかを確認する必要があります。そうであれば、最初にその特定のテーブルを更新してから UI を更新する必要があります。

今、これを実装する方法について大まかなアイデアが必要ですか?

Web サービスからのデータは頻繁には変更されません。そのため、データが常に最初にデータベースからロードされるアーキテクチャ/メカニズムを作成する必要があります。次に、新しいデータが Web サービスから利用可能である場合は、サービス更新テーブルを解析してから UI を更新します。

基本的に私はこのようなものが欲しい

    MainThread
        |
        |
        |-------->>--------separate thread----->>-----|
        |                                             |
        |                    listener/              query db,
   populate UI <<----------- observer/  ------<<----get data 
        |                    something                |
        |                                             |
        |                                             |
        |                                             |
        |                               check if we have new data--->> if no-- DONE       
        |                                             |
        |                                           if yes
        |                                             |
        |                                     call web service,
        |                                         fetch data,
        |                                        update table
        |                     listener/               |
    update UI  <<-------------observer/-----<<--------|
        |                     something               
        |

TumblrのAndroidアプリのようなもの..

今私は、AsyncTask をクラスとインターフェイス (オブザーバー/リスナーとして) 内にラップすることでこれを達成できると思います

しかし、ローダー(アンドロイドで利用可能)を使用するのが好きです。

他の提案はありますか?

4

1 に答える 1

0

良い質問 !

有名な Google I/O デザイン パターンを達成しようとしているようですね。 Google IO 残りのデザイン パターン、完成した ContentProvider とスタックしました https://www.youtube.com/watch?v=xHXn3Kg2IQE

私は過去にそれをしました(おそらく、そうすべきだったほどではありません;-))。そして、私のアドバイスは、この2つの点を確認してください。

  • テーブルが複雑すぎない
  • あなたの更新は常に行われているわけではありません。

そうでない場合は、データベース アクセスによるパフォーマンスの問題に直面する可能性があります。でも本当にいいパターンです。

もう 1 つのアドバイスは、ボイラープレートの代わりにイベント バスを使用することです。これは、UI を更新するためのイライラするインターフェイスです。(私はよくこれを使用します https://github.com/greenrobot/EventBusパフォーマンスの問題はありません。Ottoも優れていてシンプルですが、android-annotations とうまく統合されません)。

それが役立つことを願っています。

于 2013-09-13T14:00:14.160 に答える