是否有可能创建一个仅用于在方法运行时显示progressdialog的线程,而不将操作本身放在线程中,就像在 AsyncTask 中一样?
假设第一行方法类似startThread
,类似ProgDialog.show()
,最后一行类似于stopThread
,类似ProgDialog.dismiss()
。
我要求的原因是,我使用 AsyncTask 进行了尝试,并且它运行良好,直到我在 AsyncTask 内部调用的数据库方法试图做数据库操作,而主UI中的其他数据库操作尚未完成(或尝试启动)。
所以我得到了数据库被阻止的异常。我经常使用sqlite中的事务来保持一致性和性能,在这种情况下也是必需的。
答案 0 :(得分:1)
是否有可能创建一个仅用于在方法运行时显示progressdialog的线程,而不将操作本身放在线程中,就像在AsyncTask中一样?假设第一行方法类似于startThread,类似于ProgDialog.show(),最后一行类似于stopThread,类似于ProgDialog.dismiss()。
不,因为可以显示和关闭对话框的唯一线程是主应用程序线程,并且您特别不想阻止该线程。
直到我在AsyncTask中调用的数据库方法尝试进行数据库操作而主UI中的其他数据库操作尚未完成(或尝试启动)时,它一直运行良好。
将“其他数据库操作”移出主应用程序线程。