第一个AsyncTask是
protected String doInBackground(String... params) {
while(true)
//...getting chat messages from IRC server
}
点击按钮打开帐户后,我用json
启动另一个AsyncTaskprotected String doInBackground(String... args) {
JSONObject json = jsonParser.makeHttpRequest("https://"),"GET", params);
//..........
}
第二个AsyncTask无法完成,因为第一个正在运行,不允许第二次获取连接。
如何设置暂停第一个AsyncTask并在完成第二个后恢复?暂停,因为我不能先停止。
答案 0 :(得分:2)
根据文件:
首次引入时,AsyncTasks在单个上串行执行 背景线程。从DONUT开始,这被改成了一个池 允许多个任务并行运行的线程。从...开始 HONEYCOMB,任务在单个线程上执行以避免常见 并行执行导致的应用程序错误。
如果您真的想要并行执行,可以调用 executeOnExecutor(java.util.concurrent.Executor,Object [])with THREAD_POOL_EXECUTOR。
http://developer.android.com/reference/android/os/AsyncTask.html
答案 1 :(得分:2)
尝试使用另一个执行程序启动第二个AsyncTask ...
asyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);