关于android onCreate()c中关于datàbase活动的问题

时间:2010-11-19 01:39:32

标签: java android multithreading

我对android开发有点新意。我知道网络活动和昂贵的操作不应该在ui线程上完成,但是数据库活动呢?

我有一个活动,在启动时,我查询sqlite数据库并使用充气器动态填充tablelayout中的行。我在oncreate()方法中完成所有这些操作。这应该在一个单独的线程中完成吗?如果是这样,有人能为我提供一个例子吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

根据数据库和设备的不同,查询UI线程上的数据库可能会触发ANR消息。

Android提供了一种简单的方法来执行异步查询,因此如果花费的时间超过预期,则不会阻止UI线程。查看文档中的AsyncQueryHandler,IOSched有一个可以窃取和使用的实现。

答案 1 :(得分:1)

我不希望本地查询真的减慢用户界面的速度。您第一次启动应用程序时是否注意到任何挂起?通过网络获取URL的事情应该在他们自己的线程中,因为它们可能导致长时间挂起。