我想从Web服务下载数据,实际上我第一次通过asynctask(后台线程)下载它并且我在Oncreate方法中执行它,这很好。
但是我也尝试在oncreate方法的ui线程中下载,所以我只是在oncreat方法中直接调用Httpclient,这个工作正常而且速度更快,当我按下时应用程序不会失败下载数据时的屏幕。
我认为第二种方法工作正常,因为应用程序在完成oncreate方法之前不会显示用户界面。 它是否正确 ?我应该使用第二种方法吗?
第一种方法:
oncreate(bundle saveinstance){
new Task.execute("url");
}
第二种方法:
oncreate (bundle saveinstance){
makehttprequest("url")
}
非常感谢你
答案 0 :(得分:0)
不,你不应该使用第二种方法。在较新版本的Android上,在UI线程中执行任何网络处理都会导致抛出异常。鉴于网络调用可以花费不确定的时间量,在UI线程上执行这些调用会产生无响应的UI,只要完成调用,就会打开一个空白屏幕。使用Async任务并显示进度条或闪屏,向用户显示您正在下载某些内容。