Android Java:SQLite上的游标在模拟器和某些设备上运行缓慢

时间:2012-07-01 23:37:19

标签: java android performance cursor emulation

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

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

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

我做错了什么?

1 个答案:

答案 0 :(得分:0)

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