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



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

  • 夸大布局
  • 从布局获取视图寻呼机
  • 使用asyntask without.get()从网络获取json对象以避免阻塞UI
  • 设置需要来自网络的json对象的viewpager适配器并使用json中的数据
  • 返回布局

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

在这种情况下,什么是最好或合适的方法。在我看来,我无法避免UI阻塞。其他人也有类似的情况吗?

有些指针真的很棒:(

谢谢。

不需要调用AsyncTask.get()。我猜你是在滥用AsyncTask。它只返回您在doInBackground()实现中返回的内容,而在这里您以某种方式返回null

阻止UI是绝对没有选择的!算了!

我建议使用众所周知的http库,如reforming或Volley

最新更新