我想使用AsyncTask來檢查InetAddress,如下面的代碼。變量tempInet是一個全局變量,表示該網站是否可聯繫。我使用代碼開始AsyncTask ... new InetAsyncTask()。execute(「www.facebook.com」);如何在一段時間後取消Android AsyncTask? (例如10秒)
我的問題是,我希望AsyncTask在10秒後(例如)取消自己。
其他一些問題提示使用get(10,TimeUnit.SECONDS)方法。我想這樣做,但不知道在哪裏/如何把get方法。執行?在doInBackground方法中?
另外,get()方法是否會阻塞主線程?如果確實如此,它有什麼意義呢?
任何幫助表示讚賞。
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
相關問題
Android - Setting a Timeout for an AsyncTask?
stop async task after 60 second
Android開發者的AsyncTask文檔
http://developer.android.com/reference/android/os/AsyncTask.html