Thread
、AsyncTask
、またはService
のいずれかを選択する方法はちょっと分かりません。スレッド対AsyncTask対UIとの対話のサービス
私のユースケースは、ユーザーがギターコードを練習するのに役立つカウントダウンタイマー付きのメトロノームです。私は練習をプレイして一時停止するためにいくつかのコントロールを持っており、カウントダウンタイマーはそれが変化するにつれてUIを更新する必要があります。
私の選択肢がなかったので、明らかに私は、メインスレッドにタイマーだけでなく、メトロノームコードを行うにはしたくない:
スレッド:私は、それぞれメトロノームやタイマーをプレイするために、2つのスレッドを開始;すべてのコーナーケースを処理することは本当に苦痛であり、よりよい解決策があることを知っています。 (だから私は、このオプションを破棄)
AsyncTask:それは少し良いアプローチですが、私は、画面を回転させる場合には、再度、メトロノーム、タイマーを開始します。また、AsyncTaskは長時間実行する操作にはお勧めできません。
サービス:これは長時間実行する操作のために設計されているため、この方が良い方法のようです。一方、サービスはUIと対話するために使用されるべきではありません。
サービスを使用する予定ですが、UIとのやりとりにはどのような欠点がありますか?