【发布时间】:2016-05-23 19:20:14
【问题描述】:
我正在编写一个 Android 应用程序,它从 SQLite Database 读取数据,然后在下一个屏幕上显示数据。每当我对数据库进行查询时,我都会收到一条错误消息,指出主线程上正在完成太多工作。
然后我将我的查询放在一个新线程中:
(new Thread()
{
public void run()
{
Looper.prepare();
try
{
FPJobCardWizard data = dbHelperInstance.loadFPJobCardWizardFull(fitmentHash);
wState.fitmentItemSet(data.fitmentItemGet());
} catch (Exception e) {e.printStackTrace();}
Looper.loop();
}
}).start();
现在 gui/main 线程在 Query 完成之前完成了它的操作,因此 data 变量仍然是空的。我阅读了一些帖子和 API 文档,似乎我需要使用 Looper(这似乎是正确的修复),但我从未使用过 Looper,似乎无法让它工作。
请您检查上面的代码并指导我正确的方向。
提前谢谢大家。
【问题讨论】:
-
使用处理程序将数据发送到 UI 线程。
标签: android multithreading looper