我在写程序的时候,发现在FileExplorer上把存储的getSharedPreferences删掉,
当前的应用程序仍然能使用,也就是说,android的源码对它进行了缓存,既然进行了缓存,
所以就有可能会有脏读的现象,问题是我在实际应用中没发现这种现象。。所以我在想,是不是在存储或者删除某些数据的时候,它会更新文件以及缓存,也就是同时更新内存的数据和文件的数据呢??源码看不太懂哎

解决方案 »

  1.   

    没明白你的意思。。“发现在FileExplorer上把存储的getSharedPreferences删掉,当前的应用程序仍然能使用”是说什么?
      

  2.   

    没有你说的那种情况,sqlite在服务器中不存在进程,
    所有不会有这种情况的,方向给我分吧。
      

  3.   

    你说的应该应该是当preference中不存在对应的key,而返回的defValue
      

  4.   

    我举个例子吧我有个程序,进去主activity后点击一个图标,首次需要输入用户密码什么的设定,再次登录只要输入密码即可,我输入后,回退到主activity后,在File Explorer上把shareference整个删掉,然后再点那个图标,还是只要输入密码即可,不用设置什么说明了有缓存。我的shareprefence几乎在每个activity上都有引用
      

  5.   

    这个应该是EditText自己有缓存,你可以试试完全退出程序,重新使一次
      

  6.   

    重新退出程序相当于activity全销毁了,那么shareprefence的引用也没了,再次get的时候肯定get不到至于edittext有缓存很牵强