在我的父母班上:

// 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's onResume,而不是调用ChildActivity's onResume并弄乱分析数据。我尝试使用instanceof检查this是否等于ParentActivity,但是它不起作用。

最佳答案

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

由于您要调用super.onResume,因此只需删除

if (this instanceof ChildActivity) connectToGoogleAnalytic();


来自ChildActivity.onResume

关于java - Android Java识别“this”。或调用父函数的子类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17026532/

10-13 03:37