`
jacky-zhang
  • 浏览: 316618 次
  • 性别: 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

    通过`LiveDataSharedPreferences`库,可以将SharedPreference的值转换为`LiveData`对象,使得数据能在生命周期内自动更新并传递给UI。 ```java LiveDataSharedPreferences liveDataSharedPreferences = new ...

    android Sharedpreference的例子代码

    在Android开发中,SharedPreference是一种轻量级的数据存储机制,用于保存和读取小型的键值对数据。它非常适合用来存储应用的用户设置或者一些简单的持久化数据,比如开关状态、首选项等。在这个"android ...

    sharedpreference使用demo源代码

    此外,还可以使用`PreferenceManager.getDefaultSharedPreferences(Context)`来获取默认的SharedPreference实例,通常用于实现设置界面。 总之,SharedPreference是Android开发中常用的一种存储简单数据的方法,它...

    Android四种存储方式 sharedpreference,file,SQlite,contentprovider

    ContentProvider是Android中用于在应用间共享数据的标准化接口。虽然创建和使用ContentProvider相对复杂,但它为其他应用提供了统一的访问接口。ContentProvider需要实现`UriMatcher`,`query()`, `insert()`, `...

    4-16-1(游戏保存之SharedPreference).zip

    4. **共享属性**:尽管名称中包含"Shared",但SharedPreference并非跨应用共享数据的方式,它仅限于单个应用内部使用。 在游戏保存的场景中,SharedPreference可以用来存储玩家的进度、设置、得分等信息。例如,你...

    Android之SharedPreference

    - **ContentProvider**:对于跨应用共享数据,可以使用`ContentProvider`,虽然使用较为复杂,但能实现更高级的数据共享功能。 - **SQLite**:如果需要存储结构化数据,如表格形式的数据,推荐使用SQLite数据库,它...

    Android应用源码之(游戏保存之SharedPreference).zip

    通过分析这份"Android应用源码之(游戏保存之SharedPreference)",你可以深入理解如何在实际项目中利用SharedPreference来实现游戏保存功能,提升用户体验。此外,还可以结合源码学习如何优雅地管理和组织存储数据,...

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

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

    ContentProvider 共享SharedPreferences 值

    `ContentProvider` 是Android提供的一种机制,允许应用间安全地共享数据。本篇将详细讲解如何利用`ContentProvider`来共享`SharedPreferences`的值。 首先,理解`SharedPreferences`。它是Android系统提供的一种轻...

    SharedPreference.rar

    共享数据的持久化策略 `SharedPreferences`和`PreferenceActivity`都是持久化数据的手段,它们的数据保存在设备的私有数据目录下,不会因应用的退出而丢失。当用户更改设置后,`SharedPreferences`会立即保存更改...

    ContentProvider内容提供者

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

    四种Android数据存储方式

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

    单点登录demo

    - 共享数据的关键在于,两个应用需要有相同的SharedPreference。这通常通过在AndroidManifest.xml中设置相同的android:sharedUserId属性来实现,使两个应用在同一个用户ID下运行,从而能访问彼此的SharedPreference...

    SharedPreference

    **SharedPreference**是Android开发中的一个关键组件,用于在应用程序之间持久化轻量级的数据。它主要用于存储用户偏好设置或应用程序的状态数据,如开关状态、音量设定等。这些数据通常是以键值对的形式存在,且...

    SP实现登陆例子

    每个应用程序都有自己的SharedPreference实例,不会与其他应用共享。数据类型主要支持String、boolean、int、float和long。 在实现登录功能时,通常包括以下步骤: 1. **创建SharedPreferences对象**:在Activity...

    Java_使用SharedPreference Android和UserDefaults iOS与React Nati.zip

    这个库简化了React Native应用在Android和iOS之间共享数据的工作,无需深入学习每个平台的特定实现。它支持多种数据类型,并且提供了异步API,使得在JavaScript环境中处理数据更加方便。 总结起来,`...

    应用源码之(游戏保存之SharedPreference).zip

    SharedPreferences允许开发者在应用程序之间共享数据,这些数据存储为XML文件,并且是持久化的。这意味着即使应用程序被关闭或设备重启,数据也会被保留。每个应用程序都有自己的SharedPreferences空间,互不影响。 ...

    Android SharedPreferencese 用法 代码 实例

    在Android应用开发中,Shared Preferences 是一种轻量级的...总之,Android的Shared Preferences是开发者在处理轻量级数据存储时的一个重要工具,通过简单易用的API,可以方便地在应用的不同组件之间共享和持久化数据。

Global site tag (gtag.js) - Google Analytics