【问题标题】:How can I simultaneously (from different threads) insert data into different tables in one Android SQLite database?如何同时(从不同的线程)将数据插入到一个 Android SQLite 数据库的不同表中?
【发布时间】:2013-04-17 09:41:23
【问题描述】:

在我的 Android 应用程序中,我有带有 4 个表(实验室、医生、收入消息、结果消息)的 SQLite 数据库。使用java.lang.Thread 从服务器检索此表的信息,并在检索信息后下一个线程插入数据库开始。(AsyncTask 对此很慢)以及一个线程可以在其他线程仍在插入时访问数据库的问题数据。但我不想只为一个线程锁定数据库并让其他线程等待(在这种情况下需要很多时间)。

那么问题来了:我能否以某种方式允许不同的线程同时将数据插入到不同的表中?

【问题讨论】:

    标签: java android multithreading sqlite android-sqlite


    【解决方案1】:

    使用Content Provider。那将解决问题! Content Provider 将为您处理并发表进程!
    有一些解决方法,比如为 SQliteDatabaseHelper 使用单个实例,当我遇到像你这样的问题时,它从来没有工作过。
    当我切换到 Content Provider 时,一切都很顺利。

    【讨论】:

      【解决方案2】:

      建议在所有线程(及其托管组件)中使用单个 SQLiteDatabase 对象来获得线程安全。 DBHelper 必须是单例,或者使用ContentProvider,才能达到这个效果。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-29
        • 2019-08-30
        • 1970-01-01
        相关资源
        最近更新 更多