使用asynctask和方法顺序的网络请求

时间:2015-04-19 03:27:19

标签: android json

我有一个小应用程序正在做类似以下的

  • 夸大布局
  • 从布局获取viewpager
  • 使用没有.get()的asyntask从网络获取json对象以避免阻止UI
  • 设置viewpager适配器,该适配器需要来自网络的json对象并使用来自json的数据
  • 返回布局

这里的问题是,如果在某些情况下使用没有.get()的asyntask,我会得到空对象和应用程序崩溃,很可能是由于还没有出现json对象。我应该以某种方式让用户在那里等待,并且我确实在预执行时使用启动画面并在完成asyntask时隐藏,但由于它在viewpager适配器设置中,因此无法更改其顺序。所以代码的执行并没有就此止步。

对于这些案例,最佳或正确的方法是什么。在我看来,我无法避免UI阻塞。还有其他人有类似案件吗?

一些指针真的很棒:(

谢谢。

1 个答案:

答案 0 :(得分:0)

无需致电AsyncTask.get()。我猜你是在滥用AsyncTask。它只返回您在doInBackground()实现中返回的内容,并且您将以某种方式返回null

阻止用户界面绝对没有选择!算了吧!

我建议使用知名的http库,例如retrofitVolley