@Override
public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    ((CustomApplication) getApplication()).detach(this);
}


生成PMD报告时,出现此错误:方法结尾应调用Super。通常,您最终会将super方法保留在顶部(第一条语句),以便首先调用其父类进行初始化。

最佳答案

通常,您最终会将super方法保留在顶部(首先
  语句),以便首先调用其父类。


以下代码段显示了Activity#onSaveInstanceState(Bundle outState)的外观。您可以看到它仅通过调用super.onSaveInstanceState(outState);将传入的Bundle保存为参数。因此,在实际在Bundle中保存内容之前调用super方法是没有意义的。

protected void onSaveInstanceState(Bundle outState) {
    outState.putBundle(WINDOW_HIERARCHY_TAG, mWindow.saveHierarchyState());
    Parcelable p = mFragments.saveAllState();
    if (p != null) {
        outState.putParcelable(FRAGMENTS_TAG, p);
    }
    getApplication().dispatchActivitySaveInstanceState(this, outState);
}

关于android - Super应该在方法结尾处调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17992284/

10-08 21:17