我的Android应用程序运行速度很慢而且滞后很多。我的服务器上有PHP API,我的应用程序通过HTTP请求数据。
尽管如此,问题是有时候我应该等几秒才能看到结果。我在onCreate的主线程中完成了所有计算(解析XML,添加控件)并从AsyncTask中的HTTP服务器下载数据。
如何优化我的程序以加快速度?我希望它首先加载活动,然后在后台加载,下载和解析数据。这怎么可能?抱歉新婚。
答案 0 :(得分:0)
你的意思是什么?你会详细说明这个问题吗?
一个建议是从OnCreate中删除解析XML并将其移动到AsysnTask。原因是你在UI主线程中进行耗时的操作会影响要显示的活动。
创建线程以执行HTTP相关操作并在同一线程上解析响应,同时执行解析操作show dialog。
解析完成后关闭对话框,然后显示要显示的活动。
答案 1 :(得分:0)
在AsyncTask的doInBackground()
方法中添加数据解析并创建数据对象,然后在onPostExecute
更新ui元素。
做这样的事情的原因是应用程序始终响应,只是在ui线程上做小工作,以免冻结。
您可以将视图设置为默认状态,并在顶部的某处添加进度以指示活动当前正在加载。例如,您可以创建一个无法选择的空ListView
或Button
,并且在解析完成后,您应该将适配器设置为列表并使按钮返回以再次选择。
所有这些事情都可以根据用户在等待时的想法来实现。