这几天初次学安卓,做了个记事本,想要存储当前账户以便在各个activity中使用, 当时试了下intent在不同activity之间传递数据,但是太麻烦,有时候非activity还不能用,尝试着用SharedPreferences。但是很快问题来了,有些activity中读取的值为空,并不能读取自己存进去的值,但是存取的时候已经commit了。
网上很多大神支了很多招,没成功。后来自己查看自己在不同的activity中对SharedPreferences的使用,发现权限设置为MODE_PRIVATE,其他activity不能用;还有,权限不同也即使非private不能用,例如:一个设置为MODE_MULTI_PROCESS ,另一个设置为MODE_WORLD_WRITEABLE,这样读取的值也为空。
建议,多加点权限并且不要使用private权限。
例:SharedPreferences UserSP = getSharedPreferences("userinfo",MODE_ENABLE_WRITE_AHEAD_LOGGING | MODE_WORLD_WRITEABLE | MODE_MULTI_PROCESS);
安卓--关于不同activity之间使用SharedPreferences
最新推荐文章于 2024-07-25 21:18:27 发布
本文分享了一位初学者在使用Android SharedPreferences进行跨Activity数据传递时遇到的问题及解决方案。作者最初尝试使用Intent来传递数据,但发现这种方法过于繁琐且有时不可行。随后转向SharedPreferences,但在某些情况下读取到的数据为空。经过排查,发现问题是由于不同Activity间设置了不一致的文件访问权限导致。


139

被折叠的 条评论
为什么被折叠?



