在我的 Android 应用程序中,我有带有 4 个表(实验室、医生、收入消息、结果消息)的 SQLite 数据库。该表的信息是通过使用java.lang.Thread
并在检索信息之后从服务器检索到用于插入数据库启动的下一个线程。(AsyncTask
对此很慢)以及一个线程可以在其他线程仍在插入数据时访问数据库的问题。但我没有不要只为一个线程锁定数据库并让其他线程等待(在这种情况下需要很多时间)。
所以问题是:我可以以某种方式允许不同的线程同时将数据插入不同的表吗?
在我的 Android 应用程序中,我有带有 4 个表(实验室、医生、收入消息、结果消息)的 SQLite 数据库。该表的信息是通过使用java.lang.Thread
并在检索信息之后从服务器检索到用于插入数据库启动的下一个线程。(AsyncTask
对此很慢)以及一个线程可以在其他线程仍在插入数据时访问数据库的问题。但我没有不要只为一个线程锁定数据库并让其他线程等待(在这种情况下需要很多时间)。
所以问题是:我可以以某种方式允许不同的线程同时将数据插入不同的表吗?
使用内容提供者。那将解决问题!Content Provider 将为您处理同步表进程!
有一些解决方法,比如为 SQliteDatabaseHelper 使用单个实例,当我遇到像你这样的问题时,它从来没有工作过。
当我切换到 Content Provider 时,一切都很顺利。
建议跨所有线程(及其托管组件)使用单个SQLiteDatabase对象来获得线程安全。DBHelper 必须是单例,或者使用ContentProvider来实现这个效果。