ฉันมี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 );
หลังจากเริ่มต้นAsyncTask
ตัวจัดการใหม่จะเริ่มทำงานซึ่งจะยกเลิกAsyncTask
หลังจาก 30 วินาทีหากยังทำงานอยู่
นี่เป็นแนวทางที่ดีหรือไม่? หรือมีบางอย่างในตัวAsyncTask
ที่เหมาะสมกว่าสำหรับจุดประสงค์นี้?