2

私は、典型的な CRUD 操作のために REST サービスを呼び出すふりをするアプリを開発しています。リクエスト処理をUIスレッドから切り離したいので、AsyncTaskを使って別の作業をする予定です。ただし、ここでの私の質問は次のとおりです。AsyncTask(s) モデルをどのように設計すればよいですか? すべての CRUD 操作に 1 つの AsyncTask を使用する必要がありますか (これは実現可能ですか?)、または 4 つの AsyncTasks (作成、削除、更新、取得) を使用する必要がありますか?

前もって感謝します

4

3 に答える 3

1

AsyncTask を使用する代わりに、ContentProvider を使用します。

このスレッドによると:

https://groups.google.com/forum/?fromgroups#!topic/android-developers/8M0RTFfO7-M%5B1-25%5D

Android 4 では、AsyncTasks はシーケンシャルになります。

したがって、その理由だけで、ソリューションが最適ではない可能性があります。

しかし、CRUD 呼び出しの背後で何が起こっているかはユーザーには関係ないため、ContentProvider はあなたがやろうとしていることに対してより理にかなっています。ただし、UI スレッドに長時間いるのはよくないので、これを別のスレッドで実行することをお勧めします。

于 2012-08-19T00:30:18.093 に答える
0

それは本当にあなた次第であり、おそらくあなたが消費しているRESTサービス次第です。

考慮すべき事項:

  1. 単一の ですべてを簡単に実行できるように、サービスは十分に一般的AsyncTaskですか?
  2. 単一の を使用すると、コードが読みやすく理解しやすくなりますAsyncTaskか? AsyncTask操作ごとに書いた方が読みやすいと思いがちです。(つまり、CreateTask、UpdateTask...)
  3. 自分の選択で求めている再利用性を得ることができますか (それが何であれ)?

個人的には、4 つの個別AsyncTaskの を作成し、再利用可能なコードを基本クラスに配置しますが、何が最適かは実際にはあなた次第です。

于 2012-08-19T00:10:40.550 に答える
0

個人的にはLoader、互換性ライブラリで利用できるフレームワークを使用しています。CRUD 操作ごとにのサブクラスがあり、AsyncTaskLoader非常にうまく機能します。

多くのクラスを使用したくない場合は、同じタスクを使用できます (つまり、作成と更新が技術的に同じタスクに収まる可能性がありAsyncTaskLoaderますsetParameters(...)) onCreateLoader()

ローダーのドキュメントを確認した後、上記を読むと役立つ場合があります。

于 2012-08-19T04:29:47.783 に答える