我使用asynctask对服务器进行GET请求,而我想做的是当互联网连接断开(没有互联网连接)我希望我的AsynTask睡眠升技然后再次在同一个asynctask中开始发送请求,我怎么能那样做
THx的
答案 0 :(得分:1)
文档说:
**Threading rules**
此类必须遵循一些线程规则才能正常工作:
必须在UI线程上创建任务实例。
必须在UI线程上调用execute(Params ...)。
不要手动调用onPreExecute(),onPostExecute(Result),doInBackground(Params ...),onProgressUpdate(Progress ...)。
The task can be executed only once (an exception will be thrown if a second execution is attempted.)
尝试使用Handler
,在Thread
中获取HTTP内容(当您认为已准备好继续调用{Thread.sleep(time);
时,可以使用.sendMessage(message);
使线程休眠一段时间如果需要,可以从处理程序(handleMessage()
或runOnUiThread()
方法)对ui进行更新。
答案 1 :(得分:1)
一个合乎逻辑的事情是侦听连接更改广播并在没有可用连接时取消任务,并在连接再次可用时重新启动它。您可以检查this Q以准备好BroadcastReceiver。