我正在更新我的
Android应用.该应用程序从我的服务器检索数据,其中数据是用户ID.用户id是一个数字(整数),但它从服务器作为字符串到达,例如“1234”.在旧版本中,我将此用户ID保存为我的共享偏好中的字符串,但现在我回头看它我不喜欢这个并且想要将它保存为整数应该是.
到目前为止很简单.我只使用putInt / getInt而不是putString / getString.问题是当前使用该应用程序的所有人都将其共享首选项中保存的值作为字符串,然后当他们更新应用程序时,新版本的应用程序将开始尝试使用getInt获取旧版本的值版本保存为字符串.
什么是避免任何错误的最佳方法,并确保两个应用程序版本之间的平滑过渡?
谢谢.
解决方法
在你的onCreate中有类似的东西:
try{ prefs.getInt("key",0); }catch (ClassCastException e){ Integer uid = Integer.parseInt(prefs.getString("key",null); if(uid != null) prefs.edit().putInt("key",uid).commit(); }