两个apk公用一个sqlite的问题

Baggio3 2017-01-11 05:18:01
现状:目前A.apk会一直查询数据库,B.apk会定时更新数据到该sqlite中。有时会出现表坏死的状况。
android.database.sqlite.SQLiteDatabaseCorruptException: database disk image is malformed (code 11): , while compiling: PRAGMA journal_mode at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)

问题:1.两个apk操作同一个sqlite这样可行吗。
2.是不是两个apk同时操作引起的上诉问题。
3.应该怎么解决。
...全文
727 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
断风尘 2017-09-11
  • 打赏
  • 举报
回复
为何不使用ContentProvider
差不多先生--- 2017-06-20
  • 打赏
  • 举报
回复
引用 4 楼 dalor 的回复:
本身这样设计就扯。 如果两个都读,没什么,但一个插入一个读取,这个还没插入完,那个就来读取。两个同时更新表,那不就操蛋嘛。
上锁不就好了?
天霸动霸Tuatua 2017-05-05
  • 打赏
  • 举报
回复
百度sqlite事务处理
我們不熟 2017-02-09
  • 打赏
  • 举报
回复
eee
锋巅 2017-02-04
  • 打赏
  • 举报
回复
我想问的是两个app操作同一个数据库,应该用的不是内容提供者进行数据共享嘛,我记得内容提供者,支持并发呀,难道我记错了?
开发者_android 2017-01-12
  • 打赏
  • 举报
回复
补充一下,操作是没问题的,但对数据来说,同步对数据操作时,不能获取最新的数据。如果上锁,一个在操作,另外一个就得等待,效率和体验都会很差。综上,设计不合理。
哎,真难 2017-01-12
  • 打赏
  • 举报
回复
百度sqlite事务处理
  • 打赏
  • 举报
回复
百度sqlite事务处理
开发者_android 2017-01-12
  • 打赏
  • 举报
回复
本身这样设计就扯。 如果两个都读,没什么,但一个插入一个读取,这个还没插入完,那个就来读取。两个同时更新表,那不就操蛋嘛。
Tiimor 2017-01-12
  • 打赏
  • 举报
回复
尝试用数据库的事物处理 SQLiteDatabase db = getWritableDatabase(); db.beginTransaction(); try { for (String sql : sqls) { db.execSQL(sql); } // 设置事务标志为成功,当结束事务时就会提交事务 db.setTransactionSuccessful(); } catch (Exception e) { e.printStackTrace(); } finally { // 结束事务 db.endTransaction(); db.close(); }
cs22707 2017-01-11
  • 打赏
  • 举报
回复
当磁盘空间写满或写入了格式不正确的数据或在操作db过程中内存溢出,那么.db文件的镜像就会被破坏,这种情况下再去执行有关此db的操作,android就会把该db文件删除掉

以上来源网络。因为没见过这个异常所以去搜了一下,这个异常估计很少碰到,网上没有给出解决方案。

可能是你操作方式有问题吧,话说两个app间访问数据不是靠内容提供者吗?你直接跑的过去读的?。。。
ink_s 2017-01-11
  • 打赏
  • 举报
回复
当然是上锁呀 我猜的

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧