1

ここでアプリを設計する正しい方法を探しています。

5 つのアクティビティがあり、それぞれが個別の DB メソッド (更新、挿入、削除など) を呼び出します。私は、5 つの asynctask クラスを作成する代わりに、それぞれが呼び出されるアクティビティに属するプライベート クラスであることを疑問に思っていました。1 つの asynctask クラスを作成して、すべてのアクティビティでそのオブジェクトをインスタンス化する方法はありますか?

C++では、実行する「メソッド全体」を渡すことができるので、割り当てタスクを作成して実行するメソッドを渡すことができますが、Javaでそれができるかどうかはわかりません。または、あなたの心の中でベストプラクティスは何ですか?

ありがとうございました

4

2 に答える 2

1

これがあなたの法案に合うかどうかはわかりませんが、データベース/コンテンツプロバイダーの読み取りと書き込みを自動的かつ非同期にキューに入れる IntentServiceを作成することをお勧めします。

IntentService の onHandleIntent メソッドで処理される個別の読み取り、書き込み、および更新メソッドを作成できます。Intent サービスは、

  • データベース/CP アクセスは非同期で行われます
  • 連続するデータベース/CP アクセス要求は自動的にキューに入れられ、処理されます
  • サービスは自動的に停止/開始され、ライフサイクルを管理する必要はありません
  • アプリがバックグラウンドになっても、データベース/CP の読み取り/書き込みが行われます

ListView/Adapter アクセスについては、ローダーの使用を検討してください

于 2012-11-07T16:31:25.200 に答える
1

Runnableクラスを確認してください。

ARunnableは実行可能なタスクを表します。それを実装する必要がありrun()ます。のインスタンスを渡して、そのメソッドで実行できRunnableます。AsyncTaskdoInBackground(...)

これを行うためのより良い方法があるかもしれませんが、これが今私の頭に浮かぶ唯一のものです.

于 2012-11-07T16:30:53.907 に答える