有没有可能让一个线程只用于在方法运行时显示progressdialog,而不会将操作本身放入线程中,就像在中那样完成AsyncTask?数据库被阻塞和AsyncTask
假设方法的第一行是像startThread
喜欢的东西ProgDialog.show()
,最后一行是一样的东西stopThread
喜欢的东西ProgDialog.dismiss()
。
我问其中的原因是,我试过的AsyncTask,和它的工作很好,直到该数据库的方法是什么我里面所谓的AsyncTask试图做数据库操作,而在主UI其他数据库操作还没有完成(或试图开始)。
所以我得到了一个数据库被阻塞的异常。我经常使用sqlite中的事务处理一致性和性能,这在这种情况下也是必需的。
http://www.vogella.de/articles/AndroidPerformance/article.html这里。你应该同步你的方法。架构可能有问题。锁是正常的,死锁是不正常的。 – 2012-01-30 22:29:05
最好的方法是让一个数据库管理器类在单个线程上执行所有数据库操作(或至少管理多个线程同步)......您可以使用处理程序执行其中的所有数据库操作...以及代码也是安全的,因为没有办法在将来的代码中创建死锁... – 2012-01-30 23:19:25