我想使用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