如何(从不同的线程)同时将数据插入到一个Android SQLite数据库中的不同表中?

时间:2013-04-17 09:41:24

标签: java android multithreading sqlite android-sqlite

在我的Android应用程序中,我有SQL4数据库,有4个表(实验室,医生,income_messages,outcome_messages)。使用java.lang.Thread从服务器检索此表的信息,并在检索下一个线程以插入数据库启动之后的信息。(AsyncTask对此很慢)以及一个线程可以访问数据库的问题当其他人仍在插入数据时。但我不想仅为一个线程锁定数据库并让其他线程等待(在这种情况下需要花费很多时间)。

所以问题:我能以某种方式允许不同的线程同时将数据插入到不同的表中吗?

2 个答案:

答案 0 :(得分:1)

使用Content Provider。那将解决问题! Content Provider将为您处理同步表处理!
有一些工作就像使用SQliteDatabaseHelper的单个实例一样,当我遇到像你这样的问题时,它确实无法正常工作。
当我切换到Content Provider时,一切顺利。

答案 1 :(得分:0)

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