Saya memiliki AsyncTask
kelas yang saya jalankan yang mengunduh daftar besar data dari situs web.
Jika pengguna akhir memiliki koneksi data yang sangat lambat atau tidak stabil pada saat penggunaan, saya ingin membuat AsyncTask
batas waktu setelah jangka waktu tertentu. Pendekatan pertama saya untuk ini adalah seperti ini:
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 );
Setelah memulai AsyncTask
, penangan baru dimulai yang akan membatalkan AsyncTask
setelah 30 detik jika masih berjalan.
Apakah ini pendekatan yang bagus? Atau adakah sesuatu yang dibangun di dalamnya AsyncTask
yang lebih cocok untuk tujuan ini?