我有几个AsyncTask
正在进行网络操作。最近我被要求在每次操作之后添加另一个调用远程服务发送一些统计信息的网络调用。我希望这个统计调用不会延迟'主'网络调用,所以我想在一个创建并在AsyncTask
的{{1}}内部启动的线程中执行它们。这个帖子很可能在doInBackground()
之后结束,可能整个doInBackground()
结束。我试过这个并且它可以工作,但我想知道是否有副作用,例如内存泄漏或类似情况?
谢谢;)
答案 0 :(得分:0)
尝试在第一个AsyncTasks'onPostExecute'方法中启动第二个AsyncTask。 对我而言,这没有任何问题。
答案 1 :(得分:0)
如果您想在doInBackground
方法中启动帖子,可以在onProgressUpdate()
方法
示例:
protected class MyTask extends AsyncTask<Void,Integer,Void> {
public static final int START_THREAD = -1;
@Override
protected void onProgressUpdate(Integer... values) {
if(values[0] == START_THREAD){
startThread();
}
}
@Override
protected Void doInBackground(Void... params) {
publishProgress(START_THREAD);
return null;
}
}