Tôi muốn sử dụng AsyncTask để kiểm tra InetAddress, chẳng hạn như trong mã bên dưới. Biến tempInet là biến toàn cầu cho biết trang web có thể liên lạc được hay không.Làm thế nào để hủy bỏ một AsyncTask Android sau một khoảng thời gian nhất định? (Ví dụ 10 giây)
Tôi bắt đầu AsyncTask bằng mã ... mới InetAsyncTask(). Execute ("www.facebook.com");
Vấn đề của tôi là tôi muốn AsyncTask tự hủy sau (nói) 10 giây.
Một số câu hỏi khác đề xuất sử dụng phương thức get (10, TimeUnit.SECONDS). Tôi muốn làm điều này nhưng không chắc chắn nơi/làm thế nào để đưa các phương pháp nhận được. Với thực thi? Trong phương thức doInBackground?
Ngoài ra, phương thức get() có chặn luồng chính không? Nếu có, điểm của nó là gì?
Bất kỳ trợ giúp nào được đánh giá cao.
class InetAsyncTask extends AsyncTask<String, String, Boolean> {
@Override
protected Boolean doInBackground(String... params) {
try {
InetAddress.getByName("www.facebook.com");
return true;
} catch (UnknownHostException e) {
return false;
}
} //end doInBackground function
protected void onPostExecute(Boolean... result) {
tempInet = result[0];
}
} //end class
Câu hỏi liên quan
Android - Setting a Timeout for an AsyncTask?
stop async task after 60 second
Android Developers AsyncTask Documentation
http://developer.android.com/reference/android/os/AsyncTask.html