我有一个Activity
A 有一个按钮。在点击按钮时,它会打开另一个Activity
B,显示从服务器 (http) 获取的数据。API
我使用的版本是 15。
一旦Activity
打开 B,在onCreate()
方法中,我将调用以下代码行。
asyncFetch = new AsyncFetch();
asyncFetch.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
此Async
任务执行http
通信以从服务器获取数据。
@Override
protected Object doInBackground(Object... params) {
...
defaultHttpClient = new DefaultHttpClient();
httpPost = new HttpPost(theURL);
...
HttpResponse response = defaultHttpClient.execute(httpPost);
...
return response...;
}
获取数据后,将填充 UI。
onBackPressed()
和home
按钮,我正在调用以下代码来取消Async
任务。
asyncFetch.cancel(true);
当点击后退按钮或主页按钮时,Async
任务不会被取消,UI 会等待异步任务完成,然后返回父 Activity。
不使用的原因execute()
是因为我有几个Async
正在运行的任务,我不希望这个任务等待其他Async
任务完成。
有人能告诉我如何取消这个异步任务吗?任何帮助表示赞赏。