我有一个活动,其中有两个选项卡和一个列表视图。我想让活动的加载和打开速度非常快。我担心填充两个列表选项卡会导致应用程序在该活动打开时滞后。我正在考虑在我的应用程序的初始屏幕期间从我的数据库中加载数据并创建一组视图,然后在启动该活动后将它们简单地扔到列表视图中。这值得努力吗?我似乎找不到一种简单的方法来做这样的事情。我假设我需要自定义阵列适配器。有没有人有做这样的事情的经验?或者你会建议坚持在 onCreate() 中使用光标适配器的标准吗?
问问题
689 次
1 回答
0
问题是您需要快速加载它们的原因是什么。一般来说,可以非常快地从数据库中读取项目。无论如何,您应该在AsyncTask中执行此操作,这样您就不会使用此操作阻塞 UI 线程。
另一点是,如果要在 ListView 中显示数据库中的项目,则不应一次读取所有项目并将它们放入绑定到列表的数组中。相反,您应该使用从数据库查询中获得的 Cursor 并将其绑定到SimpleCursorAdapter或CursorAdapter,然后将其绑定到 ListView。CursorAdapter 经过优化,可以根据需要从 Cursor 读取数据。请记住,在 Android 上创建对象是一项昂贵的操作,如果不必要,应避免使用。因此,如果您的列表非常大并且用户不会总是滚动浏览整个列表,那么为什么要预加载所有项目并为其创建视图呢?
您当然可以在初始屏幕期间预查询数据库并将返回的游标存储在某处,直到您需要它们为止。
但正如我一开始所说的,我不知道你的应用程序是做什么的,所以很难说它是否值得付出努力。
于 2011-04-02T09:15:34.337 回答