`
zhanhao
  • 浏览: 286920 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SharedId实现应用之间的数据共享+SharedPreferences保存用户定义类型对象

阅读更多

通常提到android应用之间的数据共享,最先想到的总是ContentProvider,其实还有一种方法也可以实现应用之间的数据共享--配置SharedId



 

流程:

(1) 修改数据提供方和数据使用方的AndroidManifest.xml 中的<manifest>节点的属性

android:sharedUserId="com.mysharedId" 这里属性的值,数据提供方和调用方必须一致并且不能只有一个单词也就是说最少有一个“.”。

(2)使用

在数据使用Activity对象的createPackageContext()方法得到数据提供方的Context

有了这个Context你就可以得到数据提供方的资源了,通过getResources(),getString(),getAsset()等方式

 Context friendContext = this.createPackageContext("com.my.server", Context.CONTEXT_IGNORE_SECURITY);
在demo中还用到了 SharedPreferences保存自定义的实例对象,得导入一个类库commons-codec-1.4.jar

我在demo 中为了方便用的是String类型不是自定义的类型,但是你在这里可以将String类型替换成任意类型

实例代码如下:

//保存对象

 public void saveSetting(String str)
 {
  //将对象转换成对象流,然后通过SharedPreferences保存,在得到对象时是一个逆向的过程先得到对象流然后得到对象
  ByteArrayOutputStream baoStream = new ByteArrayOutputStream();
  ObjectOutputStream oStream;
  try {
   oStream = new ObjectOutputStream(baoStream);
   oStream.writeObject(str);
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }

  SharedPreferences sharedPreferences = getSharedPreferences(
    "emotions.xml", Activity.MODE_PRIVATE);
  String productBase64 = new String(
    org.apache.commons.codec.binary.Base64.encodeBase64(baoStream
      .toByteArray()));
  SharedPreferences.Editor editor = sharedPreferences.edit();
  editor.putString("info", productBase64);
  editor.commit();
 }

//得到对象

 

public String  getCharSequence(Context context)
 {
  SharedPreferences sharedPreferences = context.getSharedPreferences(
    "emotions.xml", Activity.MODE_PRIVATE);
  String str = null;
  String proString = sharedPreferences.getString("info", "");
  if (proString != null && !"".equals(proString)) {
   byte[] base64Bytes = org.apache.commons.codec.binary.Base64
     .decodeBase64(proString.getBytes());
   ByteArrayInputStream bari = new ByteArrayInputStream(base64Bytes);
   ObjectInputStream oInputStream;
   try {
    oInputStream = new ObjectInputStream(bari);
    str = (String)oInputStream.readObject();
   } catch (StreamCorruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   } catch (ClassNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }

  }
  return str;
 }

具体内容请看demo

 

  • 大小: 9.5 KB
0
0
分享到:
评论
2 楼 f839903061 2013-08-20  
不管加载不加载commons-codec-1.4.jar包,工程文件都无法运行-安装
从bin文件夹里拷贝的apk是可以安装运行的!
现在怎么才能二次开发呢?
1 楼 f839903061 2013-08-20  
您好,我想问一下,如果不用commons-codec-1.4.jar包,能不能做到这种效果呢?

相关推荐

    SharedPreferences文件在不同应用之间数据共享

    SharedPreferences是Android系统提供的一种轻量级的数据存储方式,主要用于存储应用程序的简单配置信息,如布尔值、整型、浮点型、字符串等基本类型及其数组。通常,SharedPreferences数据是私有的,即每个应用只能...

    SharedPreferences保存对象.zip

    在Android开发中,SharedPreferences是系统提供的一种轻量级的数据存储方式,主要用于保存应用程序中的简单配置信息,如用户设置、登录状态等。它采用键值对的形式来存储数据,支持基本数据类型,如布尔型、整型、...

    安卓开发通过ViewPage和RadioButton+SharedPreferences实现欢迎页

    安卓开发通过ViewPage和RadioButton+SharedPreferences实现欢迎页

    SharedPreferences 封装,保存基本数据类型,保存对象

    SharedPreferences 封装,保存基本数据类型,保存对象

    sharedpreferences 保存对象.zip

    需要注意的是,使用SharedPreferences保存对象并不适用于大量数据或频繁的读写操作,因为它并不是设计用来处理复杂数据结构的。在这些场景下,SQLite数据库或ContentProvider可能更为合适。此外,序列化和反序列化...

    SharedPreferences 保存用户设置

    在Android应用开发中,SharedPreferences是Android提供的一种轻量级的数据存储方式,主要用于保存应用程序的配置信息或者用户的一些简单设置。这些数据通常是简单的键值对,如布尔值、整型、浮点型、字符串以及字符...

    使用SharedPreferences实现数据共享

    SharedPreferences可以让不同程序之间的数据进行共享,当两个应用程序之间数据需要传递或者共享时,可以使用这个方法。这里使用两个例子TestSharePreference和TestSharePreference2,前者为一个写SharedPreferences...

    sharedpreferences 保存对象

    在Android开发中,`SharedPreferences` 是一个非常常用的数据存储机制,它主要用于保存应用中的轻量级数据,如用户的偏好设置、简单的配置信息等。`SharedPreferences` 提供了一种键值对(key-value pairs)的存储...

    采用SharedPreferences保存用户偏好设置参数

    SharedPreferences是Android系统提供的一种轻量级的数据存储方式,主要用于存储应用程序的配置参数或者用户偏好设置。它使用XML格式将数据持久化到设备的文件系统中,通常用来保存那些不需要数据库或者网络支持,但...

    使用ViewPager及SharedPreferences保存用户数据的demo

    `SharedPreferences`是Android提供的一种轻量级的数据存储方式,用于保存用户的偏好设置或简单的数据。在这个应用中,它被用来记录用户是否已经看过引导界面,这样当用户再次打开应用时,可以判断是否需要再次显示...

    Android数据共享 sharedPreferences 的使用方法

    SharedPreferences 是 Android 中的一种轻量级的数据存储方式,主要用来存储应用程序中的配置信息、用户偏好设置等。SharedPreferences 使用键值对的方式来存储数据,通过put方法将数据写入到文件中,並使用get方法...

    使用SharedPreferences保存一些数据

    在Android应用开发中,SharedPreferences是Android提供的一种轻量级的数据存储方式,主要用于存储一些简单的配置信息,如用户偏好设置、应用程序的状态等。它是一个键值对的存储系统,支持基本数据类型,如布尔型、...

    使用SharedPreferences实现简单数据应用程序共享

    SharedPreferences可以让不同程序之间的数据进行共享,当两个应用程序之间数据需要传递或者共享时,可以使用这个方法。本文会使用两个例子SharePreferenceWrite和SharePreferenceRead,前者为一个写...

    SharedPreferences保存输入记录

    在本案例中,“SharedPreferences保存输入记录”指的是应用程序利用SharedPreferences来存储用户的输入历史,以便在后续使用时能够快速恢复或参考这些记录。 在Android开发中,SharedPreferences通常用于保存那些不...

    Android中使用SharedPreferences完成保存密码(简洁版)项目的任务要求.pdf

    在Android应用开发中,SharedPreferences是用于存储轻量级数据的一个重要工具,主要用来保存用户的偏好设置或者临时数据,如登录密码。在这个项目中,我们将学习如何利用SharedPreferences来实现保存密码的功能,...

    SharedPreferences跨应用读取数据的源程序

    在Android开发中,...通过这两个示例项目,开发者可以学习到如何在Android中使用SharedPreferences进行数据存储,以及如何实现跨应用的数据共享。理解并熟练运用这些知识点对于创建功能丰富的Android应用至关重要。

    Android 3种数据保存(SharedPreferences存储 内部文件存储 数据库存储)

    在Android应用开发中,数据保存是至关重要的,它能让应用在不同状态或重启后依然保持用户的设置和数据。本教程将详细介绍Android中的三种主要数据存储方式:SharedPreferences存储、内部文件存储以及数据库存储。 1...

    SharedPreferences存储复杂的对象

    SharedPreferences是Android系统提供的一种轻量级的数据存储方式,主要用于存储应用程序中的简单配置数据,如布尔值、整型、浮点型、字符串等基本类型及其数组。然而,原生的SharedPreferences并不支持直接存储复杂...

    简单的安卓登陆界面,SharedPreferences保存数据,SQL

    这个项目提供了一个适合初学者学习的例子,其中包含了SharedPreferences用于保存用户数据以及SQL数据库的操作。以下将详细讲解这两个核心知识点。 首先,我们来讨论SharedPreferences。在Android中,...

Global site tag (gtag.js) - Google Analytics