我有一个小应用程序正在做以下
- 夸大布局
- 从布局获取视图寻呼机
- 使用asyntask without.get()从网络获取json对象以避免阻塞UI
- 设置需要来自网络的json对象的viewpager适配器并使用json中的数据
- 返回布局
这里的问题是,如果在某些情况下使用不带.get()的asyntask,我会得到null对象和应用程序崩溃,很可能是因为还没有json对象。我应该以某种方式让用户在那里等待,我确实在预执行时使用启动屏幕,在asyntask完成时使用隐藏,但那里的顺序不能更改,因为它在viewpager适配器设置中。因此,代码的执行并没有就此停止。
在这种情况下,什么是最好或合适的方法。在我看来,我无法避免UI阻塞。其他人也有类似的情况吗?
有些指针真的很棒:(
谢谢。
不需要调用AsyncTask.get()
。我猜你是在滥用AsyncTask
。它只返回您在doInBackground()
实现中返回的内容,而在这里您以某种方式返回null
。
阻止UI是绝对没有选择的!算了!
我建议使用众所周知的http库,如reforming或Volley