1. ホーム
  2. android

[解決済み] ハンドラとAsyncTaskの比較

2022-08-06 18:51:34

質問

どのような場合にハンドラではなく AsyncTask を選択するかについて、私は混乱しています。 例えば、UI を更新するために n 秒ごとに実行したいコードがあるとします。 なぜ私は他のものよりも 1 つを選択するのですか?

どのように解決するのですか?

IMO では、AsyncTask は Android アプリでバックグラウンド処理を実現するための便利で使いやすい方法を提供するために書かれましたが、低レベルの詳細(スレッド、メッセージ ループなど)についてはあまり気にする必要はありません。これは、タスクをスケジュールし、また必要なときにいつでも簡単にUIを更新するのに役立つコールバックメソッドを提供します。

しかし、AsyncTask を使用するとき、開発者はそのクラスの著者が取った設計上の決定のために生じた制限に服従していることに注意することが重要です。たとえば、私は最近、AsyncTasks を使用してスケジュールできるジョブの数に制限があることを知りました。

ハンドラは2つのうちより透明で、おそらくより多くの自由を与えてくれます。したがって、物事をよりコントロールしたいのであれば、ハンドラを選択するでしょう。