0

これは一種の理論的な質問であることはわかっていますが、私は Android を使い始めており、基本はすでに習得しており、自分で小さなアプリを構築したいことはわかっていますが、それを正しい方法で行いたいと思っています。

SQLite DBにデータを表示するListViewがあります。そして、そのデータは、アプリを起動するたびに Web から更新され、ListViewを含むこのアクティビティに戻るたびに更新されます。また、 ListViewから選択したオブジェクトのDetailViewを入力すると、データも再更新されます (ただし、ListView で収集されるすべてのオブジェクトではなく、1 つのオブジェクトのみ) 。

ここで、バックグラウンドでデータをフェッチするには、 IntentまたはIntentService (Android では既にデフォルトで非同期に呼び出されます) を使用する必要があると考えています。

public class DownloadService extends IntentService {
  public DownloadService() {
    super("DownloadService");
  }

  // Will be called asynchronously be Android
  @Override
  protected void onHandleIntent(Intent intent) {
...

しかし、私が実際に目にするすべてのチュートリアルでは、Activityを使用して呼び出し、AsyncTaskを拡張するいくつかのクラスを使用しています。

public class MainActivity extends Activity {
...
// DownloadData AsyncTask
    private class DownloadData extends AsyncTask<Void, Void, Void> {
...

おそらく私は別の方法を使用する必要がありますが、実際にはチュートリアルを指し示す必要はありません。より経験豊富な Android プログラマーにその方法を教えてもらいたいだけです。

4

1 に答える 1

0

非同期タイプのタスクであるべきことが 2 つあります。これは、マラカナ Yamba プロジェクトで達成しようとしているものに似た優れた設計です。ビデオにはデッドスペースがたくさんあるので、デザインについて話しているビデオを探します。正しいデザイン方法を教えてくれます。そこに持ち出されるポイントは、既に持っている非同期の DownloadData タスクであり、次にコンテンツ プロバイダーで 1 つを探す必要があります。ラジオはバッテリーを必要とするため、DownloadData はインターネットからの効率的なダウンロードを処理します。コンテンツ プロバイダーも同じように機能しますが、アプリの UI アクティビティにデータをフィードします。ベーシックなおすすめタイプのデザインです。

お役に立てれば。

于 2013-07-31T03:47:01.010 に答える