AsyncTask
Bir web sitesinden büyük bir veri listesi indiren yürüttüğüm bir sınıfım var.
Son kullanıcının kullanım sırasında çok yavaş veya kesintili bir veri bağlantısına sahip olması durumunda, AsyncTask
zaman aşımını bir süre sonra yapmak istiyorum . Buna ilk yaklaşımım şöyle:
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 );
Başladıktan sonra AsyncTask
, AsyncTask
hala çalışıyorsa 30 saniye sonra iptal edecek yeni bir işleyici başlatılır .
Bu iyi bir yaklaşım mı? Yoksa AsyncTask
bu amaca daha uygun yerleşik bir şey var mı?