如何有效地从 Android 上的 SQLite 数据库更新和获取数据?

How to efficiently update and get data from a SQLite database on Android?

我正在制作一个应用程序,它从网站获取时间表并将其显示在我的应用程序中的一个漂亮的 ListView 中。为了在用户离线时提供时间表,我试图先将它保存在 SQLite 数据库中,然后从那里获取数据。这个想法是当用户启动应用程序时,当用户按下刷新按钮并在设定的时间由后台服务 运行 更新数据库。

我的问题是:如何在不使用 UI 线程的情况下有效地从数据库更新和获取数据,从而不阻塞用户交互。

我想我应该使用一个将任务放入队列的系统,以便在数据显示在我的 ListView 中之前更新数据库。除此之外,我不知道如何在 Android.

上实现这样一个系统

好的,所以你需要实现三件事:

1) 从网站获取数据到数据库:为此你应该使用 AsyncTask

2) 创建一个 ListView 将从数据库中获取数据并自动更新。为此,您需要使用 Loader 来处理后台数据的加载。

3) 要使用加载程序,您需要一个 ContentProvider 来为您提供所需的光标并在更改时通知 ListView。

对于这三个,网上有很多不错的教程,例如参见here