Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.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
Android Java标识";这一点;或子类在父函数中调用_Java_Android - Fatal编程技术网

Android Java标识";这一点;或子类在父函数中调用

Android Java标识";这一点;或子类在父函数中调用,java,android,Java,Android,在我的家长班: // ParentActivity.java @Override protected void onResume() { if (this instanceof ParentActivity) connectToGoogleAnalytic("parent"); // do something else super.onResume(); } 儿童班: // ChildActivity.java extent ParentActivity @Ove

在我的家长班:

// ParentActivity.java
@Override
protected void onResume() {

    if (this instanceof ParentActivity) connectToGoogleAnalytic("parent");

    // do something else

    super.onResume();
}
儿童班:

// ChildActivity.java extent ParentActivity
@Override
public void onResume() {
    if (this instanceof ChildActivity) connectToGoogleAnalytic("child");
    super.onResume();
}

这种情况是,如果活动是
ChildActivity
,那么在调用
onResume
时,它也会调用
ParentActivity的
onResume
,而不是调用
ChildActivity的
onResume
并弄乱分析数据。我尝试使用instanceof检查此
是否等于
ParentActivity
,但它不起作用。

如果ChildActivity扩展了ParentActivity,则ChildActivity的实例同时是ChildActivity和ParentActivity

既然您正在调用super.onResume,您只需删除即可

if (this instanceof ChildActivity) connectToGoogleAnalytic();

从ChildActivity.onResume

如果ChildActivity扩展了ParentActivity,则ChildActivity的实例既是ChildActivity又是ParentActivity

既然您正在调用super.onResume,您只需删除即可

if (this instanceof ChildActivity) connectToGoogleAnalytic();

从ChildActivity.onResume

对于这种情况,分析将显示用户正在读取ParentActivity而不是ChildActivity?否,如果您在ChildActivity中重写ConnectTogoLogLeanalysic,则在ParentActivity内调用ConnectToGoLogLeanalysic仍将对ChildActivity对象执行ChildActivity方法。在java多态性自动用于这种情况下,分析将显示用户正在读取ParentActivity而不是ChildActivity?否,如果您在ChildActivity中重写ConnectTogoLogLeanalysic,则在ParentActivity内部调用ConnectTogoLogLeanalysic仍将对ChildActivity对象执行ChildActivity方法。在java中,多态性在这种情况下会自动使用,在parentA.java中的
if
块之后,为什么不直接调用孩子的
connecttogogleanalysic()
?在这种情况下,在parentA.java中的
if
块之后,为什么不直接调用孩子的
connecttogogleanalysic()