![](/img/trans.png)
[英]super.onCreate(savedInstanceState) crashes in first run
[英]super.onCreate() changes my variables
我最近开始使用Android编程并遇到了很多问题,但是除了这个之外我已经能够解决所有问题了。 为了简单起见,我将尝试总结正在发生的事情。
在MainActivity.onCreate()中调用super.oncreate()之前和之后的Logcat语句,我可以看到super.onCreate()的某些部分将ArrayList中的先前正确值更改为null。
如果它很重要,这个静态ArrayList包含自定义(可序列化)对象,每个对象都包含一个自定义(可序列化)对象的ArrayList,其值本身为null。
如果那令人困惑,我会尝试用伪代码表示它:
static ArrayList<CustomObject>
CustomObject{
ArrayList<OtherCustomObject> //values of this ArrayList become null
}
当然,如果需要更多信息,我会尽量提供更多信息。
无论为什么会出现这种情况,将这样的列表存储在静态变量中并期望它存在(没有计划重新创建)并不是一个好主意,因为系统可能会决定在它处于低位时终止你的进程记忆。 当用户尝试重新输入您的应用程序时,系统会尝试重新创建活动时,您将具有空值。
如果数据很重要,请将其写入文件(您说它已经是Serializable)并在启动主活动时读取它。
静态数据一直存在
在您描述的情况下,这些都不会发生。 VM已启动,进程正在运行,Dalvik不会卸载类。 请提供其他信息以重现问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.