Java 类别';在父活动中初始化的对象在子活动中重新初始化
我有一个在活动(父活动)中初始化的对象。现在,每当执行子活动的onCreate时,扩展父活动的子活动将重新初始化该对象 细分:Java 类别';在父活动中初始化的对象在子活动中重新初始化,java,android,object,inheritance,parent-child,Java,Android,Object,Inheritance,Parent Child,我有一个在活动(父活动)中初始化的对象。现在,每当执行子活动的onCreate时,扩展父活动的子活动将重新初始化该对象 细分: 1.在父对象的onCreate上,类的对象在以下条件下初始化: if(obj == null){ Init(); } 二,。此时启动一个子活动(扩展父活动)由于super.onCreate(),父活动的onCreate也会被调用,并且它完全忽略父活动在#1中运行init()的条件 有人能告诉我如何克服这种情况吗 更新:有人吗?:(因此,首先,controller
1.在父对象的
onCreate
上,类的对象在以下条件下初始化:
if(obj == null){
Init();
}
二,。此时启动一个子活动(扩展父活动)由于super.onCreate()
,父活动的onCreate也会被调用,并且它完全忽略父活动在#1中运行init()的条件
有人能告诉我如何克服这种情况吗
更新:有人吗?:(因此,首先,
controller
在onCreate()
中始终为null。在子活动中将controller
视为null的原因是,您在调用super.onCreate()
之前记录了它的值(调用父级的onCreate()
并初始化控制器).请附加完整的代码,而不仅仅是无用的片段。@Smutje这是一个复杂的代码,遵循MVC arch。我可以共享该项目吗?这是一个小项目,只有2xactivity和1x controllerNo,但至少需要创建并导致问题的两个类来分析您的问题-可能将它们限制为构造函数和创建发生的位置。@Smutje这是,这是(扩展父活动)@blackbelt yep也请参见^pls查看我上面的内容,这正是我的观点。我不希望控制器的obj被重新初始化。我不明白的是(撇开在child:p中记录控制器的obj不谈)为什么父活动的onCreate
会重新初始化obj?:(我在那里有一个适当的条件,它在什么时候初始化之前就已经初始化了?它在中初始化,并且只在onCreate()中初始化)父活动的
。启动该活动的子类不会同时启动父活动和子活动,它只会启动子活动。创建活动时(onCreate()
被调用),您将初始化控制器变量。在任何时候都不会启动onCreate()
在你的活动被破坏之前被调用两次。哈哈,我想你搞错了:D我想说的是:当孩子的onCreate
被调用时,父母的onCreate
也被调用(由于super.onCreate()
行),当时(在父母的onCreate
行中)它忽略初始化/不初始化控制器的obj的条件,只需重新初始化没有初始化的OBJN。它进入if(controller==null)
分支,因为controller
在onCreate()中始终为null
。这是否意味着首先初始化obj的父活动现在无法访问控制器的obj(在子对象的onCreate执行父对象的onCreate时)?因此,我如何确保它不会重新初始化,或者如果我可以使用引用的obj从子对象重新初始化控制器?