6

シナリオは次のとおりです。

  • 基本的にマップビューで構成されるAndroidアプリを持っています。
  • このアプリは、FoursquareやWikipediaなどのさまざまなWebサービスにクエリを実行して、場所のリストを取得し、それらを地図にプロットします。

質問、

  • データソースがデータベースではなくWebサービス(上記のような)であるコンテンツプロバイダーを構築する方法を知っている人はいますか?私を正しい方向に向けていただければ幸いです。

ありがとう!

4

2 に答える 2

1

データ ソースが db ではなく Web サービス (上記のようなもの) であるコンテンツ プロバイダーを構築する方法を知っている人はいますか?

次の回答は、かなり古風な「手動」の方法と見なされる可能性があることを考慮してください。

Web サービスにクエリを実行し、取得した結果をカーソルに変換するコンテンツ プロバイダーを構築できます。

Web サービスを照会するには、 HttpClientおよびHttpGet要求を使用できます。これを行う方法については、 MyKongのチュートリアルを参照してください。これを行うための新しい代替手段もいくつかあります。

Web サービスから取得した検索結果を解析しながら、個々の結果ごとにaddRow()で行を追加することにより、 MatrixCursorクラスで独自のカーソルを作成できます。

これを行う場合は、常にバックグラウンド スレッドを介して (つまり、 CursorLoaderAsyncTask 、または別の形式のスレッドを使用して)コンテンツ プロバイダーを呼び出すようにしてください。そうしないと、ネットワーク操作がメイン UI スレッドで終了します。

于 2014-11-04T17:03:43.453 に答える
1

私はあなたと同じものを探していましたが、DataDroid http://www.datadroidlib.com/に出会いました。Web サービスが REST 指向である場合、REST を処理する簡単な方法であり、より使いやすいと思います。

編集:

DataDroid は非推奨としてマークされました。彼らはロボスパイスに移動しますhttps://github.com/stephanenicolas/robospiceを参照してください

于 2013-02-08T12:30:37.520 に答える