このトピックについて多くのスレッドがあることは知っていますが、次のようになります。簡単なタスクがあります。
public class MyTask extends AsyncTask<T, U, V> {
...
@Override
protected Void doInBackground(T... params) {
for (int i = 0; i < 60; i++)
{
if (isCancelled()) return null;
publishProgress(i);
Thread.sleep(1000);
}
return null;
}
...
}
これは非常に簡単です。私は60まで数え、UIのTextViewを更新します。メモリリークを回避し、すべてのスレッドを正しく処理する必要があるため、構成の変更(画面の回転など)を解決する必要がある場合に問題が発生します。
Android 3.0で導入され、ローダーが登場します。ローダーは、バックグラウンドスレッドで長期間の操作を処理するための好ましい方法になりました(スレッドについてそれほど注意を払う必要はありません)。しかし、私がそれを正しく理解していれば、それらはどこかからいくつかのデータをロードし、それらをアクティビティ/フラグメントに表示するための主要なものです。いくつかのWebコンテンツをダウンロードして、リストなどの形式で表示するようなものです。
編集済み:UIを使用せずにフラグメントを使用する(アクティビティが再作成されるときにRetainInstance = trueを使用する)、またはサービスとして開始するというアイデアなど、バックグラウンド作業を行う方法の他の可能性を見つけました。彼らはおそらくこれをはるかに簡単な方法で達成することができます。
私の質問は、私はAndroidを初めて使用するので、どちらに進むべきかということです。