通过SharedPreferences类进行应用间数据传递的简单使用场景

原创 2016年08月31日 16:11:41

通过SharedPreferences类进行应用间数据传递的简单使用场景

SharedPreferences类大家都很熟悉了,用它进行简单数据的存储很方便,但是很多人不知道,SharedPreferences存储在本APP目录下的数据可以被其他APP读取的,这为我们提供了一个进行跨应用数据传递的通道。下面通过一个简单的例子来实现。

  • 第一个app的代码
    //包名:com.hongzhen,这是其他应用获取数据的重要参数

    public class MainActivity extends AppCompatActivity {
    
       @Override
        protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
     SharedPreferences sp = getSharedPreferences("name",Context.MODE_WORLD_READABLE);
        sp.edit().putString("name","hongzhen").commit();
    }
    

    }

这里写图片描述

  • 第二个app的代码

    package sharedpreferences.readsharedpreferences;

    import android.content.Context;
    import android.content.SharedPreferences;
    import android.content.pm.PackageManager;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.Log;

    public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        try {
            Context context = createPackageContext("com.hongzhen", CONTEXT_IGNORE_SECURITY);
            SharedPreferences sp = context.getSharedPreferences("name", Context.MODE_PRIVATE);
             String name = sp.getString("name", "11");
             textView.setText(name);
    
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
    }
    

    }
    这里写图片描述

  • 总结

    • 这样就是实现了应用间的简单数据传递,这里需要注意的地方有三点:
      • 存储数据APP的包名(另一个app获取数据的关键参数)
      • SharedPreferences 在存储数据的时候,
        SharedPreferences sp = getSharedPreferences(“name”, Context.MODE_WORLD_READABLE);
        MODE不能是 Context.MODE_PRIVATE(只限于本程序可以获取)。
      • 获取数据的app通过下面的方法获取存储了数据的app的Context对象,进而获取到SharedPreferences 实例进行数据的读取。
        Context context = createPackageContext(“com.hongzhen”, CONTEXT_IGNORE_SECURITY);
        SharedPreferences sp = context.getSharedPreferences(“name”, Context.MODE_PRIVATE);
版权声明:本文为博主原创文章,未经博主允许不得转载。

Android基础之Activity系列 - Activity间的数据传递

Activity间的数据传递总结: Intent:(数据传递的灵魂) Android的应用程序包含三种重要组件:Activity、Service、BroadcastReceiver,应用程序采用一致的...
  • pangrongxian
  • pangrongxian
  • 2015年12月03日 21:51
  • 2385

最全activity之间传递数据总结二SharedPreferences

在android开发中camera里面对SharedPreferences使用的比较频繁。 先简单说明一下SharedPreferences的原理: SharedPreferences是一个基于xml...
  • sssheiye
  • sssheiye
  • 2016年02月24日 15:24
  • 628

Java类之间的数据传递3中方法。

1.若是不变的常量可用接口interface,在接口中定义然后几个类就可以共用了。 2.如果是类之间传递变量有两种方法,假如类A调用类B的一个属性,类B的长像如下: class B {   pu...
  • baidu_30204381
  • baidu_30204381
  • 2015年07月30日 10:12
  • 493

应用间简单数据传递

App A @OnClick(R.id.login_setting) void jumpSetting(){ Intent i = new Intent("com.cetnav.logi...
  • zcljy0318
  • zcljy0318
  • 2016年04月08日 14:47
  • 143

Android sharedPreferences基本用法和用于两个应用之间共享数据

sharedPreferences的基础用法和通过他在两个应用之间共享数据
  • luyanjun07
  • luyanjun07
  • 2016年02月03日 16:15
  • 2888

综述种类:Android组件之间 数据传递方法

博客源址:activity之间的数据传递方法 博客时间:2012-06-06 18:27 1  基于消息的通信机制 Intent--------boudle,extra 用这种简单的形式,一般...
  • Buaaroid
  • Buaaroid
  • 2015年11月05日 17:20
  • 2756

架构设计:系统间通信(29)——Kafka及场景应用(中2)

在本月初的写作计划中,我本来只打算粗略介绍一下Kafka(同样是因为进度原因)。但是,最近有很多朋友要求我详细讲讲Kafka的设计和使用,另外两年前我在研究Kafka准备将其应用到生产环境时,由于没有...
  • yinwenjie
  • yinwenjie
  • 2016年05月06日 12:17
  • 15518

使用SharedPreferences存储数据

SharedPreferences 可以替代读写文件的方法,保存一些外部数据。这些数据被保存为键值对的类型,所以对于像账号密码这种类型的数据,保存在SharedPreferences 中将会很方便。如...
  • jyDave
  • jyDave
  • 2015年12月17日 12:46
  • 412

Android五种数据传递方法汇总

Android开发中,在不同模块(如Activity)间经常会有各种各样的数据需要相互传递,我把常用的几种 方法都收集到了一起。它们各有利弊,有各自的应用场景。 我现在把它们集中到一个例子中展示,在例...
  • xcltapestry
  • xcltapestry
  • 2013年11月07日 15:26
  • 8601

Android进阶——Sharedpreferences保存对象和图片等复杂类型的数据

Sharedpreferences保存序列化的对象和图片等复杂类型的数据
  • CrazyMo_
  • CrazyMo_
  • 2017年01月16日 18:15
  • 1872
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:通过SharedPreferences类进行应用间数据传递的简单使用场景
举报原因:
原因补充:

(最多只允许输入30个字)