在片段中运行多个asyntask时,检查网络连接的最佳方法是什么?是否更好地在OncreateView方法中处理它并使用多个if语句检查每个异步的网络或在每个异步任务中处理网络连接并在其doInBackground中使用try / catch? 谢谢。
答案 0 :(得分:0)
根据您的问题和评论,我会在创建和启动AsyncTask之前检查网络连接。
也就是说,因为启动AsyncTask时你有一个网络连接并不能保证你在AsyncTask的整个生命周期中都会有网络连接,所以在你的AsyncTask中优雅地处理错误。
当您的片段被销毁时,请务必取消并取消您的AsyncTasks。否则,您的AsyncTasks将使您的片段实例在内存中保留的时间比您更长,因为您的片段可能具有对AsyncTask的强引用,并且您的AsyncTask将强烈引用Fragment通过某个接口调用它或仅仅直接引用片段。
此外,如果您的AsyncTask回调到一个分离的片段,当您运行post-AsyncTask代码时,该片段很可能会抛出异常。
答案 1 :(得分:-1)
首先,我相信在服务中使用AsyncTask会更聪明,否则你很容易“丢失”AsyncTask而只是浪费工作,更不用说引起内存泄漏是多么容易。
您必须在AsyncTask中处理错误,否则您的应用程序将崩溃。所以它有点自我解释:)它还取决于你是否尝试连接不同的服务,或者如果一个AsyncTask要求其他服务完成等等等等。