私が持っているAsyncTask
、私はそれのダウンロードにウェブサイトからのデータの大きなリストを実行するクラスを。
使用時にエンドユーザーのデータ接続が非常に遅いか、むらがある場合は、一定時間AsyncTask
後にタイムアウトを設定します。これに対する私の最初のアプローチはそうです:
MyDownloader downloader = new MyDownloader();
downloader.execute();
Handler handler = new Handler();
handler.postDelayed(new Runnable()
{
@Override
public void run() {
if ( downloader.getStatus() == AsyncTask.Status.RUNNING )
downloader.cancel(true);
}
}, 30000 );
を開始した後、まだ実行されている場合、30秒後にAsyncTask
をキャンセルする新しいハンドラが開始されますAsyncTask
。
これは良いアプローチですか?それともAsyncTask
、この目的により適したものが組み込まれていますか?