码迷,mamicode.com
首页 > 其他好文 > 详细

SharedPreferences

时间:2015-03-06 10:05:06      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:preference   数据   

SharedPreferences

SharedPreferences:应用程序有时需要保存少量的数据,如各种配置信息(声音的开关,震动效果的开关等)的存储,这个时候启用数据库有点夸张,安卓提供了SharedPreferences进行保存。

SharedPreferences保存的数据主要是类似于key-value键值对。其提供的主要接口是负责读取应用程序的Preferences数据,常用方法有以下:

  1. boolean contains(String key):判断SharedPreferences是否包含特定的key数据。
  2. abstract Map
public class MainActivity extends Activity {

    private Button write;
    private Button read;
    private SharedPreferences preferences;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        write = (Button) findViewById(R.id.write);
        read = (Button) findViewById(R.id.read);

        preferences = getSharedPreferences("count",MODE_PRIVATE);

        //读取SharedsPreferences里的count数据
        int count = preferences.getInt("count",0);
        Toast.makeText(this,"程序以前被使用了" + count + "次。 ", Toast.LENGTH_LONG).show();

        //获取到SharedPreferences的editor,用来进行写入数据
        SharedPreferences.Editor editor = preferences.edit();

        //存入数据
        editor.putInt("count",++count);

        //提交修改
        editor.commit();
    }
}

上面这个例子只是在本应用里面使用ShraedPreferences,如果要读写其他应用的ShraedPreferences,首先要被访问的应用在创建的时候指定了相应的访问权限,也就是上面提到的三种权限。

为了读取到其他应用程序的SharedPreferences数据,可以按照下面三个步骤来进行:

  1. 先创建其他应用对应的Context,例如:
    Context context = createPackageContext(“com.dada.example”,Context.CONTEXT_IGNORE_SECURITY);
    上面的com.dada.example就是应用程序的包名,通过这个我们可以找到相应的应用程序。

  2. 调用获取到的COntext的getShraedPreferences(String name, int mode)即可获取到相应的ShraedPreferences对象。

  3. 再根据SharedPreferences提供的edit()方法来获取到响应的Editor,即可向ShraedPreferences中写入数据了。

现在在刚才已有的基础上,再创建一个应用程序,读取上一个应用的ShraedPreferneces中的数据。

public class MainActivity extends ActionBarActivity {

    private Button write;
    private Button read;
    private int count;
    private SharedPreferences preferences;
    private SharedPreferences.Editor editor;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        write = (Button) findViewById(R.id.write);
        read = (Button) findViewById(R.id.read);

        Context myApplication = null;

        try{
            myApplication = createPackageContext("com.example.pc.myapplication",Context.CONTEXT_IGNORE_SECURITY);
            preferences = myApplication.getSharedPreferences("count",Context.MODE_WORLD_WRITEABLE);
            editor = preferences.edit();
        }
        catch (Exception e){
            e.printStackTrace();
        }



                write.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                editor.putInt("count",++count);

            }
        });

        read.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                count = preferences.getInt("count",0);
                Toast.makeText(getApplicationContext(),"count的值为" + count,Toast.LENGTH_LONG).show();

            }
        });

    }
}

SharedPreferences

标签:preference   数据   

原文地址:http://blog.csdn.net/jing_unique_da/article/details/44095809

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!