0

几周前我发布了一个应用程序,我的许多用户都在抱怨应用程序的速度太慢。当我测试我的应用程序时,我使用的是平板电脑,它运行良好,没有任何问题。

现在我在 Android 2.2 上的模拟器上测试了该应用程序,发现该应用程序在从我的 SQLite 数据库加载一些数据时非常慢。我发现 Cursor.moveToFirst() 方法非常慢,并迫使模拟器冻结大约 1 分钟。这可能是我的用户在打开此活动时告诉我强制关闭或加载时应用程序很慢的原因:|

我最多加载 700 列,每列只有一个值。

我究竟做错了什么?

4

1 回答 1

0

默认情况下,查询在 UI 线程上执行。听起来您正在查询大量信息(价值 700 列),并且这会在很长一段时间内阻塞 UI 线程。您应该使用 aCursorLoader或 an异步执行查询,AsyncTask这样您就不会阻塞 UI 线程(就像 UI 线程被阻塞 4-5 秒一样,应用程序将强制关闭并出现“应用程序无响应”错误)。

于 2012-07-01T23:48:16.687 回答