2016-10-05 8 views
0

一度に1つのタスクを実行する必要があるときに、アクティビティのUIスレッドから離れる最善の方法は何ですか?また、データをアクティビティに返します。活動は一時停止、停止、破壊されると考えていますか?メインスレッドから移動してデータをアクティビティに返す

7 ThreadPoolExecuter

1)HandlerThread

2)

3 RxAndroid)ローダ

4)AsyncTask

5)RoboSpice

6))EventBus

8)またはその他何か

ありがとうございました。

この非常に基本的な質問は申し訳ありません。私は彼らが私が混乱させたいくつかの記事を読んだ。私は通常、AsyncTaskを使用して、ローダーが次のステップだと考えましたが、今は考えていません。

+0

そのない確かに言いたいが、私自身はRXjavaそのに少し難しくを使用メモリリークは最小限に抑えられ、コールバックをより詳細に制御することができます。 –

+0

私はこの問題にますます直面しており、多くの記事でAsyncTaskは正しい方法ではありません。それが価値があるなら、私は何かを学ぶために読まれます。 –

+0

@AmirZiaratiあなたはローダーを使ったことがありますか? Rxjavaはローダーのケースをカバーしますか? –

答えて

0

あなたは何を使用することができますが、すべてがマルチスレッド用に設計された 、 一人一人が、特定のユースケース例について

をカバーユニークな機能を持って、ハンドラを使用すると、多くのメッセージ(スレッド)を処理することができ、メッセージキュー、

を持っています

ローダーオリエンテーション後も維持されます。変更(アクティビティはありません)

AysncTaskは、Webサービスにヒットするような短く、迅速な操作に使用されます。 あなた件までそのあなたが実際にあなたのケースに基づいて

を使用するかを決定するには、(活動にデータを返す、ローダーが適切であろう)

+0

ローダーとRxJavaのどちらかを選ぶ必要があるのですか? –

+0

Rx Javaはイベントをベースにしています(何かがこれを実行した場合)、クリックやビューの膨張、表示された文字の入力、アプリケーションの終了などのイベントに使用でき、ローダはカーソルを持つローダを作成し、データソースを監視します。それは独自のコールバックを持っています – Nandhu

+0

AsyncTaskは、呼び出しが来た場合にエラーが発生しやすく、アラーム開始リングまたは別のアプリケーションに切り替えるユーザーです。私はこれが短い仕事でも起こると思います。 –

関連する問題