通过查看官方文档https://developer.android.com/reference/android/content/Context.html
得出getSharedPreferences()两工程间共享数据在android2.3以后功能默认关闭了


所以查看源码
frameworks/base/core/java/android/app/ContextImpl.java
第605行
if ((mode & Context.MODE_MULTI_PROCESS) != 0 ||
getApplicationInfo().targetSdkVersion < android.os.Build.VERSION_CODES.HONEYCOMB) {//---> 获取工程文件的targetSdkVersion大于HONEYCOMB就 关闭该功能了
// If somebody else (some other process) changed the prefs
// file behind our back, we reload it. This has been the
// historical (if undocumented) behavior.
sp.startReloadIfChangedUnexpectedly();
}
那么就去查看 android.os.Build.VERSION_CODES.HONEYCOMB的值
/home/ss/c1.5/android4.0/frameworks/base/core/java/android/os/Build.java


看到第243行
public static final int HONEYCOMB = 11; // android2.3的targetSdkVersion=10,这也就验证了官方文档写的不支持android4.0--targetSdkVersion=14


找到了原因,那么就有 解决办法
修改 ContextImpl.java

将android.os.Build.VERSION_CODES.HONEYCOMB的位置替换15即可,更高的版本,那么就用更大的的数字咯

注意:为什么不直接修改HONEYCOMB=15呢?因为在其他的地方有可能也有限制4.0及以上版本什么什么的操作,但是我现在又用不到,就不去影响了

更多相关文章

  1. android Dialog大小修改
  2. android“设置”里的版本号
  3. Android(安卓)version and Linux Kernel version
  4. opengrok setup on ubuntu for android source code browser
  5. 从 Android(安卓)Sample ApiDemos 中学习 android.animation API
  6. android源码下载方式
  7. 修改android系统和watchdog的延时
  8. Android——开发环境
  9. android通过ksoap2对webservice的解析

随机推荐

  1. Android Activity生命周期详解
  2. 【转】Android通过共享用户ID来实现多Act
  3. Android widget之ListView
  4. Android--spinner选择框,AutoCompleteText
  5. 【Android问题】Android导入一个工程时提
  6. logcat 总是报: W/StaticLayout: maxLineH
  7. Android Studio 打包apk,自动追加版本号和
  8. Android(安卓)Notification
  9. Android 应用语言切换的三种方法
  10. android: 横竖屏切换总结-布局改变和数据