【发布时间】:2021-09-20 12:04:53
【问题描述】:
我有一个自定义类,其中包含 3 个 String 字段(arg1、arg2、arg3)和 getter/setter。在Fragment 中有3 个editText 字段创建自定义类的新对象。我还有一个ArrayList 的自定义对象(最大容量为 15,但通常在 1-3 左右),存储在SharedPreferences 中。
一切正常,直到最后一次更新,我只更改了xml 中的一些 UI 设计功能。没有更改任何 Java 代码,尤其是那些与自定义对象有关的代码,ArrayList 或 SharedPrefs。
现在,一些用户在更新我的应用程序后,首先(或在大多数情况下,仅)损坏了 ArrayList 的条目,而 arg1 是 "" 或 null。
最糟糕的是它们显示arg2 的值,其中明确称为textView.setText(arg1)。
我将我的SharedPrefs 保存在onStop() 中并在onCreate() 中恢复它,我正在使用Gson/Json 进行存储。在 99.9% 的情况下一切都很好,但是在最近的更新之后,一些用户报告了这个问题。
发生了什么,以及如何防止它在未来发生?
编辑:
我将我的ArrayList 设置为public static,所以我可以在其他地方使用它,这会不会有问题?此外,由于我无法调试生产应用程序,我注意到 args 或其值已经像 MyCustomObject("val1", "val2", "val3") 现在一样移动 MyCustomObject("val2", "val3", "???") 我不知道最后一个值是什么。是val1还是""
【问题讨论】:
标签: android arraylist sharedpreferences