`
jacky-zhang
  • 浏览: 309823 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

通过SharedPreference实现共享数据

 
阅读更多
如果程序B想要访问程序A的sharedPreference可以通过下面的语句来实现:
try {
            AContext =createPackageContext(A_PACKAGE_NAME,
                    Context.CONTEXT_IGNORE_SECURITY);
        } catch (NameNotFoundException e) {
            Log.e(TAG, "find package error!");
        }
        SharedPreferences sp = AContext.getSharedPreferences(PREFERENCES_NAME,
                Context.MODE_WORLD_READABLE);
        sp.getInt(PREF_NAME, 0);

在A程序里创建SharedPreference的时候也需要使用Context.MODE_WORLD_READABLE属性。另外SharedPreference还有Context.MODE_WORLD_WRITEABLE属性。根据SDK的解释,就是允许别的应用程序来对SharedPreference进行写操作。但是在实际程序实验中发现即使加上了这个属性,写操作也是无法成功的,会提示一个错误:Couldn't rename file /data/data/....PREFERENCES_NAME.XML to  /data/data/....PREFERENCES_NAME.XML.bak。
在manifest.xml里面将两个应用程序的android:sharedUserId属性设为相同的,同时,两个应用要是同一个签名文件签名。
分享到:
评论

相关推荐

    android Sharedpreference的例子代码

    android Sharedpreference是共享存储,本例子代码实现存储数据,提取数据。代码导入就可以运行。

    harmonyos2-Harmony:没有ContentProvider的多进程SharedPreference实现

    最大的挑战之一是管理多个进程之间的共享数据。 大多数解决方案依赖于一个进程可供另一个进程读取数据,这可能非常缓慢,并可能导致 ANR。 Harmony 是一个线程安全、进程安全、完整的实现。 它可以代替任何地方使用...

    ContentProvider内容提供者

    Android 系统提供了三种方式来实现数据持久化(数据存储),即文件存储、SharedPreference 存储、数据库存储,而这三种方式只是程序内部共享与存储数据,要实现跨程序共享数据,就要使用 ContentProvider(内容提供...

    四种Android数据存储方式

    如果要实现数据共享,正确的方式是使用ContentProvider。  SharedPreference SharedPreference是一种轻型的数据存储方式,实际上是基于XML文件存储的“key-value”键值对数据。通常用来存储程序的一些配置信息。其...

    单点登录demo

    一个实现Android单点登录的Demo,是通过多个应用之间共享SharedPreference数据来实现的。

    老罗android视频开发源码和ppt经典

    10.2 SharedPreference共享参数 10.3 android操作数据库一 10.4 android操作数据库二 10.5 android操作数据库三 10.6 android操作数据库四 10.7 android操作数据库五 十一、android对话框介绍 11.1 对话框介绍一 ...

    android开发demo集合

    37、ContentProvider、ContentResolver 应用之间共享数据 38、 Service 相当于没有界面的activity 39、Activity与Service运行中通信 40、Service 相当于没有界面的activity 41、AIDL Service android中的跨进程...

    android初学者入门项目

    37、ContentProvider、ContentResolver 应用之间共享数据 38、 Service 相当于没有界面的activity 39、Activity与Service运行中通信 40、Service 相当于没有界面的activity 41、AIDL Service android中的跨进程...

    详解Android中一些SQLite的增删改查操作

    在Android,数据都是么私有的,要实现数据共享,正确方式是使用Content Provider。 SQLite: SQLite是一个轻量级的数据库,支持基本SQL语法,是常被采用的一种数据存储方式。Android为此数据库提供了一个名为...

Global site tag (gtag.js) - Google Analytics