我最近创建了一个程序,它获取大量的xml数据,并将其转换为字符串数组,然后显示数据。
这个程序工作得很好,但是当它制作数组时会冻结(根据大小大约16秒)。
有什么方法可以优化我的程序(字符串数组的替代品等)
最佳答案
3个优化应该有帮助:
穿线
如果程序冻结,很可能意味着您没有使用单独的线程来处理大型xml文件。这意味着您的应用程序必须等待此任务完成才能再次响应。
相反,创建一个新线程来处理XML,并在完成后通过Handler通知主线程,或者使用AsyncTask。这将在here中得到更详细的解释。
数据存储
此外,本地SQLite数据库可能更适合存储大量数据,特别是如果您不必同时显示所有数据。这可以通过平台提供的游标来实现。
配置更改
最后,确保在发生配置更改(如方向更改)时不必重建数据。持久的sqlite数据库可以帮助实现这一点,而且还可以these方法。