java - Android:带有进度对话框的繁重数据库操作

标签 java android database

我已经习惯了following用于快速插入数据库的 AsyncTask 的 doInBackground 方法的惯用语:

    mDatabase.beginTransaction();
    try {
            //... do DB stuff

            mDatabase.setTransactionSuccessful();
    } finally {
            mDatabase.endTransaction();
    }

但是,如果我使用这个习惯用法,我的进度对话框(放置在 onPreExecute 方法中)不会显示。另一方面,如果我用常规的 mDatabase.execSQL() 语句替换上面的代码,进度对话框会显示,但插入会变得非常慢。有什么办法可以让我两全其美(即进度对话框和快速插入)。谢谢!

注意:beginTransaction 在 EXCLUSIVE 模式下运行(我不明白这意味着什么)。是这个原因吗?

最佳答案

在启动 AsyncTask 之前显示您的对话框(例如,通过 showDialog() )。

关于java - Android:带有进度对话框的繁重数据库操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9623470/

相关文章:

java - 将日历java中的月份字符生成到变量中

机器人 : app crash if user inputs two decimal points like "1..5" instead of "1.5"

Android实时图形调整用户触摸屏

java - 使用反射可以使集合(列表)的大小小于 0 吗?

java - Spring boot 创建新行而不是更新

java - 如何修复 API 28 中的 Android 数据绑定(bind)错误?

android - 在 AndroidManifest 中有条件地声明服务

sql-server - 从 DataSet 创建数据库 (mdf)

android - 如何克隆或卡住 Android 数据库游标

database - JPA 实体 - 指定持久性单元?