今天调试一个bug,迷惑了很久。最后发现是关于首选项取值存值问题。
这里ps为IPreferenceStore对象.
ps.getString(XXX_KEY)是首选查找首选项 ,如果取出的值为空,如果有default值的话则执行ps.getDefault(XXX_KEY)。
ps.setValue(XXX_KEY, "XXX")时首先和default中的XXX_KEY比较,如果不同的话才put进去,否则就删除。这也是我今天这个bug的原因。修改办法是用putValue函数来代替setValue.
有什么说的不对的地方欢迎批评指正.