android多进程问题

来源:互联网 发布:mac上能玩哪些网络游戏 编辑:程序博客网 时间:2024/06/05 19:06

我们知道,在Android设备上,一个进程对应一个虚拟机实例。而不同的虚拟机之间是相互隔离的,也就意味着,我们不能使用常规方法来共享数据。

但是,这并不意味着两个进程之间无法通信。事实上,有一些方法可以实现进程间通信。比如,Intent,Handler,Messenger,AIDL或者Binder。

另外,多进程还会带来以下问题,

  • 静态成员和单例模式完全失效(不是同一块内存,会产生不同的副本)
  • 线程同步机制完全失效(不是同一块内存,所以对象也不是同一个,因此类锁、对象锁也不是同一个,不能保证线程同步)
  • SharedPreferences 可靠性下降(SharedPreferences不支持多个进程同时写,会有一定的几率丢失数据)
  • Application 多次创建(Android为每个进程分配独立的虚拟机,这个过程其实就是启动一个应用,所以Application会被创建多次),所以我们不能直接将一些数据保存在Application中。
原创粉丝点击