跨应用读取SharedPreference数据
2016-01-04 11:48
281 查看
不废话,简单粗暴上代码
应用A:
应用B:
应用A:
package com.example.atest_sp; import android.app.Activity; import android.content.Context; import android.content.SharedPreferences; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; public class MainActivity extends Activity { private EditText et; private Button btn; public static final String FILE_NAME = "_filename"; public static final String KEY = "_key"; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et = (EditText) findViewById(R.id.et); btn = (Button) findViewById(R.id.btn); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { SharedPreferences share = getSharedPreferences(FILE_NAME, Context.MODE_WORLD_READABLE); share.edit().putString(KEY, et.getText().toString()).commit(); } }); } }
应用B:
package com.example.btest_sp; import android.app.Activity; import android.content.Context; import android.content.SharedPreferences; import android.content.pm.PackageManager.NameNotFoundException; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class MainActivity extends Activity { private TextView tv; private Button btn; public static final String A_PKG_NAME = "com.example.atest_sp"; public static final String FILE_NAME = "_filename"; public static final String KEY = "_key"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv = (TextView) findViewById(R.id.tv); btn = (Button) findViewById(R.id.btn); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { try { SharedPreferences share = getTargetContext().getSharedPreferences(FILE_NAME, Context.MODE_WORLD_READABLE | Context.MODE_MULTI_PROCESS); String afterBooleanValue = share.getString(KEY, ""); tv.setText(afterBooleanValue + ""); } catch (NameNotFoundException e) { e.printStackTrace(); tv.setText("没有找到该包名"); } } }); } private Context getTargetContext() throws NameNotFoundException { return createPackageContext(A_PKG_NAME, Context.CONTEXT_IGNORE_SECURITY); } }
相关文章推荐
- Node: 在Mac中离线安装Sqlite3
- AngularJS 指令
- AngularJS 表达式
- 如何通过jquery查出ID以XX开头,以XX结束的元素?
- jQuery里面的datepicker日期控件默认是显示英文的,如何显示中文或其他语言呢?
- 15款最佳的 jQuery 分步引导插件
- JavaScript设计模式 --- 接口
- CSS——优先级
- AngularJS简介
- Js 中Date()对象之二---倒计时
- zepto和jquery的区别,zepto的不同使用8条小结
- cJSON代码阅读(2)——cJSON介绍
- Leetcode211: Populating Next Right Pointers in Each Node II
- jquery如何获得td标签中value属性的值
- 深入浅析AngularJS中的module(模块)
- Javascript基于对象三大特性(封装性、继承性、多态性)
- Js 中Date()对象之一---时间差
- Color the fence(南阳oj791)(贪心+策略)
- 常用的一些javascript小技巧
- 【JavaScript】数据类型--廖雪峰JS教程【学习总结】