Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 类别';在父活动中初始化的对象在子活动中重新初始化_Java_Android_Object_Inheritance_Parent Child - Fatal编程技术网

Java 类别';在父活动中初始化的对象在子活动中重新初始化

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

我有一个在活动(父活动)中初始化的对象。现在,每当执行子活动的onCreate时,扩展父活动的子活动将重新初始化该对象

细分:
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从子对象重新初始化控制器?