zoukankan      html  css  js  c++  java
  • android 数据存储之SharePreference 的几种方式

    1. 常见的 getSharedPreferences(String filename,mode)  

    指定sp文件的名称,生成的文件名为 filename.xml

    2.getPreferences(mode)

    getPreferences只有一个参数,不能指定文件名,文件名固定为
    当前Activity的名字,不包含包名。

    3.PreferenceManager.getDefaultSharedPreferences(Context)

    该SharedPreferences MODE默认为MODE_PRIVATE,而且生成文件名为
    <包名>_preferences.xml    

    ------------------三个mode

    MODE_PRIVATE 私有的,不允许其他程序访问该xml文件。
    MODE_WORLD_READABLE 其他程序可以读取
    MODE_WORLD_WRITABLE 其他程序可以写 

    这里其他程序如何访问呢?
    有两种方式:
    第一种,在第二个程序中通过File:

    File f = new File("/data/data/包名/shared_prefs/xxx.xml"); 
    FileInputStream fis = new FileInputStream(f);//在被访问程序中,MODE_WORLD_READABLE 
    FileOutputStream fos = new FileOutputStream(f);//在被访问程序中,MODE_WORLD_WRITABLE

    第二种,通过被访问程序的Context对象。

    Context otherContext = createPackageContext( 
    "com.anjoyo.sharedpreference", CONTEXT_IGNORE_SECURITY);

    第一个参数为要创建context的包名,第二个参数为创建时忽略安全问题。

    SharedPreferences sp = otherContext.getSharedPreferences 
    ("loginsetting", MODE_WORLD_READABLE); 
    String name = sp.getString("name", ""); 
    String pwd = sp.getString("pwd", "");
  • 相关阅读:
    Android AndroidManifest 清单文件以及权限详解!【转】
    java的几个版本以及jre,jdk等概念——【转载】JDK、Java SE、Java EE、Java ME我该选
    eclipse中的两种Jre 及 Jre与Jdk的区别
    LAMP_yum安装
    CentOS7修改主机名(hostname)
    Linux下U盘挂载
    mount命令
    vmware虚拟机无法连接网络
    shell中awk printf的用法
    scp命令
  • 原文地址:https://www.cnblogs.com/shoneworn/p/4505741.html
Copyright © 2011-2022 走看看