我正在使用AsyncTask执行httpClient,但在此之前还有另一个AsyncTask用于生成一些数据,这可能需要很长时间。如果在执行httpClient之前设备进入睡眠状态会发生什么?我需要为httpClient请求使用wakeLock吗?
我正在使用AsyncTask执行httpClient,但在此之前还有另一个AsyncTask用于生成一些数据,这可能需要很长时间。如果在执行httpClient之前设备进入睡眠状态会发生什么?我需要为httpClient请求使用wakeLock吗?
onPause()
。 如果您没有以某种花哨的方式取消/终止后台任务,则不会对其产生任何影响。AsyncTask
在与主应用程序线程分开的单独线程中运行,因此无法阻止它们。 永远。
我不理解您的设计:为什么要使用两个单独的AsyncTask
? 如果收集填充HTTP请求的数据需要时间,则应使用单个AsyncTask
并在doInBackground()
中完成所有操作,以确保不会发生竞争条件。 否则,您将不得不链接任务或在第一个任务中启动第二个任务,这听起来不太正确。
HTTP客户端只是一个套接字库,不是神话传说中的野兽 :)