Mel*_*Mel 5 android android-asynctask
我想使用AsyncTask来检查InetAddress,例如在下面的代码中.变量tempInet是一个全局变量,用于指示网站是否可联系.
我用代码开始AsyncTask ... new InetAsyncTask().execute("www.facebook.com");
我的问题是我希望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
Run Code Online (Sandbox Code Playgroud)
相关问题
Android开发人员AsyncTask文档
http://developer.android.com/reference/android/os/AsyncTask.html
您应该创建一个取消异步任务的处理程序(http://developer.android.com/reference/android/os/AsyncTask.html#cancel(boolean))
向此处理程序发送一条延迟消息,例如:
Handler.sendMessageDelayed(msg, delayMillis)
private android.os.Handler mHandler = new android.os.Handler() {
@Override
public void handleMessage(Message msg) {
(Your AsyncTask object).cancel(true);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4849 次 |
| 最近记录: |