Android SharedPreferences在不同应用模块里通信

来源:互联网 发布:淘宝店加权重有哪些 编辑:程序博客网 时间:2024/06/14 04:51

Android源码开发,经常会遇到sharedpreference在一个模块写,在另一个模块读的情况,实现起来也很简单

在Dialer模块里写

 private static final String PREFER_NAME = "share";
 private static int MODE = Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE + Context.MODE_MULTI_PROCESS;

SharedPreferences share = getSharedPreferences(PREFER_NAME,MODE); 

share.putBoolean("vibratecall", true);

share.commit();

在Settings模块里读

 private Context getTargetContext() throws NameNotFoundException {  
        return getContext().createPackageContext("com.android.dialer", Context.CONTEXT_IGNORE_SECURITY);  
    }

try {  
   SharedPreferences share = getTargetContext().getSharedPreferences(PREFER_NAME,MODE);  
   boolean needVibrate = share.getBoolean("vibratecall", false); 
    Log.v(TelephonyConnection.this, "needVibrate = "+needVibrate);
    if(needVibrate){
Vibrator vbr = (Vibrator) getPhone().getContext().getSystemService(Context.VIBRATOR_SERVICE);
vbr.vibrate(300);
}  
} catch (NameNotFoundException e) {  
   e.printStackTrace();  
   Log.i("callvibrate", "木有找到该包名");  
}

0 0
原创粉丝点击