检查网络连接在具有多个asyntask的片段中

时间:2015-08-11 17:20:48

标签: android android-fragments android-asynctask

在片段中运行多个asyntask时,检查网络连接的最佳方法是什么?是否更好地在OncreateView方法中处理它并使用多个if语句检查每个异步的网络或在每个异步任务中处理网络连接并在其doInBackground中使用try / catch? 谢谢。

2 个答案:

答案 0 :(得分:0)

根据您的问题和评论,我会在创建和启动AsyncTask之前检查网络连接。

也就是说,因为启动AsyncTask时你有一个网络连接并不能保证你在AsyncTask的整个生命周期中都会有网络连接,所以在你的AsyncTask中优雅地处理错误。

当您的片段被销毁时,请务必取消并取消您的AsyncTasks。否则,您的AsyncTasks将使您的片段实例在内存中保留的时间比您更长,因为您的片段可能具有对AsyncTask的强引用,并且您的AsyncTask将强烈引用Fragment通过某个接口调用它或仅仅直接引用片段。

此外,如果您的AsyncTask回调到一个分离的片段,当您运行post-AsyncTask代码时,该片段很可能会抛出异常。

答案 1 :(得分:-1)

首先,我相信在服务中使用AsyncTask会更聪明,否则你很容易“丢失”AsyncTask而只是浪费工作,更不用说引起内存泄漏是多么容易。

您必须在AsyncTask中处理错误,否则您的应用程序将崩溃。所以它有点自我解释:)它还取决于你是否尝试连接不同的服务,或者如果一个AsyncTask要求其他服务完成等等等等。