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