多进程访问数据库SQLite问题

本文讨论了Android应用中多进程访问SQLite数据库带来的问题,包括进程间内存不可见导致的单例模式失效和并发访问数据库的难题。建议通过判断进程名称避免在非默认进程中初始化数据库管理类,或者使用ContentProvider来解决共享数据库的冲突。
摘要由CSDN通过智能技术生成
一般来说,一个APP默认只有一个进程,进程名称就是它的包名,我们可以通过DDMS里面的Devices视图中看到手机运行的进程,如下图所示:
 
[Android开发]多进程访问数据库SQLite问题
        当然,在一些项目中,可能存在着一个APP有多个进程的情况。如上面的“com.instagram.android”和“com.instragram.android.mqtt”其实就是Instragram的两个不同的进程。两者之间的通讯就属于跨进程通讯了。
       多进程的有很多好处,
       1)可以获得更多内存。进程是系统分配资源和调度的基本单位,进程越多得到的资源就越多。
       2)一个Service如果处于一个独立的进程中,那么即使这个Service崩溃掉,主进程都不受影响。如果主进程崩溃掉,Service进程也不受影响。http://stackoverflow.com/questions/4658511/android-how-to-decide-whether-to-run-a-service-in-a-separate-process
       多进程的实现方式,一般是在AndroidManefest.xml中声明组件的时候,通过“android:process”标签来指定组件在哪个进程中运行,如下:
 
[Android开发]多进程访问数据库SQLite问题
 
       如果“android:process”的值不是“:”开头,则系统里有同样名字的进程的话,会放到已存在的同名进程里运行,这样能减小消耗。
        如果“android:process”的值是以“:”开头,则启动一个指定名字的进程。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值