1

我有很多活动需要在创建时执行一些代码,这些代码与显示首选项有关,例如不同的主题、隐藏状态栏等。

这是其中一项活动的示例:

public class MainActivity extends BaseActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    }
}

基础活动又具有以下代码:

public class BaseActivity extends Activity{

        // getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
        // System.out.println("BaseActivity");

}

我正在尝试在创建时运行一些代码,但我无法做到。如何使用 BaseActivity 尽快从上面运行代码?

4

1 回答 1

6

在 childs 的 onCreate 方法中调用 super.onCreate(Bundle bundle) 来调用 parent 的 onCreate。

这是从 Activity 中抽象代码以便在其他 Activity 中重用的常见做法。

例如:

public class MainActivity extends BaseActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       Log.v(TAG,"MainActivity");
    }
}



public class BaseActivity extends Activity{

    protected static final String TAG = "TAG";

    @Override
    public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         Log.v(TAG,"BaseActivity");
    }
}

我个人经常这样做,但我通常更喜欢以下内容以获得更好的可维护代码:

组合优于继承

于 2013-01-29T20:17:45.473 回答