3

サービスを使用してファイルをサーバーにアップロードしていますが、ファイルのアップロード後に何らかの結果を取得しています。アップロードが完了したとき、結果が得られたとき、特定の時間内に結果が得られなかった場合、ネットワークが失われたときなど、サービスからのコールバックが必要です。 . これらのコールバックに従って、サービスが呼び出された場所からアクティビティを変更する必要があります。現在、私はこのように異なるブロードキャスト送受信を使用しています。

Intent w = new Intent("<KEY>");
w.putExtra("***", ***);
sendBroadcast(w);

現在は正常に動作していますが、それが適切な方法であるか、より良い方法があるか知りたいですか? また、アクティビティからハンドラーを渡し、サービスからメッセージキューを渡すことについても赤字ですが、これには満足していません。

4

1 に答える 1

1

使用BroadcastReceiversはまったく問題ありません。ただし、ワーカーのアップロード スレッドを一度だけ実行する必要がある場合は、AsyncTask の方がニーズに適している場合があります。で作業を行い、GUI を更新するためにdoInBackground使用します。onPostExecution()

あなたが言ったように、Activity 内で Handler を使用することもできます。ただし、ハンドラーをサービスに渡すことができるようにするために、サービスはバインドされたサービスである必要があります。

非常に単純なことについては、AsyncTask を使用することをお勧めします。

于 2013-07-20T06:47:27.927 に答える