SP共享数据(程序B读取程序A的SP数据)

来源:互联网 发布:手机控制wifi软件 编辑:程序博客网 时间:2024/06/11 06:52
一、SP共享数据:
第一步:创建的过程中把SP的mode设置成可读

第二步:先根据包名拿到A应用程序的上下文,然后根据上下文和SP的文件名拿到对应的SP,最后拿到数据。


以下mainActivity是代码:


程序A的mainActivity代码(创建SP的时候把Mode设置成可读):

SharedPreferences shared = getSharedPreferences("login", Context.MODE_WORLD_READABLE);
程序B的MainActivity代码
public class MainActivity extends Activity {//把程序A的包名和文件名定义为常量,防止填写错误。private static final String PERFERENCE_PACKNAME = "com.tz.melody";private static final String PERFERENCE_NAME = "login";//定义一个可读写的权限private static final int MODE = Context.MODE_WORLD_READABLE+Context.MODE_WORLD_WRITEABLE;private TextView tv_content;private Button bt_content;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tv_content  = (TextView) findViewById(R.id.tv_content);bt_content = (Button) findViewById(R.id.bt_content);}/** * 点击获取应用程序A的SP,先根据包名拿到A应用程序的上下文,然后进行相关的操作 * 拿到SP的数据即可 * @param v */public void showData(View v){Context context = null;try {//通过包名获取到程序A的上下文    arg1:忽略访问的权限context = MainActivity.this.createPackageContext(PERFERENCE_PACKNAME, Context.CONTEXT_IGNORE_SECURITY);} catch (NameNotFoundException e) {e.printStackTrace();}SharedPreferences share =context.getSharedPreferences(PERFERENCE_NAME, MODE);String msg = share.getString("message", "nodata");tv_content.setText(msg);}}



0 0
原创粉丝点击