bri*_*ian 1 android asynchronous android-asynctask
我正在写一个AsyncTask如下:
class Load extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected String doInBackground(String... aurl) {
//do job seconds
//stop at here, and does not run onPostExecute
}
@Override
protected void onPostExecute(String unused) {
super.onPostExecute(unused);
wait = false;
new Load().execute();
}
}
Run Code Online (Sandbox Code Playgroud)
另一种方法如下:
public void click() {
new Load().execute();
while(wait) {
;
}
}
Run Code Online (Sandbox Code Playgroud)
等待是一个全局布尔值。
这段代码:
public void click() {
new Load().execute();
while(wait) {
;
}
}
Run Code Online (Sandbox Code Playgroud)
将在任务执行时阻塞 UI 线程。这与在前台运行后台任务一样糟糕,应该会导致应用程序无响应 (ANR) 错误。请不要这样做。
请注意,AsyncTask.onPostExecute()如果任务被取消,则不会调用。如果doInBackground抛出异常,它也不会被调用。无论发生了什么,都doInBackground可能导致这种情况。
| 归档时间: |
|
| 查看次数: |
3588 次 |
| 最近记录: |