Android:覆盖onCreate主要活动方法

时间:2017-06-26 08:50:00

标签: java android

我有类似的Java活动。

package com.xxx.yyy.overrideoncreate;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        Log.d("DEBUG","Original oncreate");
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

我希望将一些onCreate指令拆分为一个单独的类,所以我也创建了它。

package com.xxx.yyy.overrideoncreate;

import android.os.Bundle;
import android.util.Log;

/**
 * Created by oox on 26/6/17.
 */

public class SubClass extends MainActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        Log.d("DEBUG","Overridden");
        super.onCreate(savedInstanceState);
    }
}

我打算让subClass.onCreate覆盖MainActivity.onCreate - 应该显示Overridden和原始的oncreate消息。但是,这似乎没有发生,被覆盖的消息没有出现在Logcat中。

知道我做错了吗?

提前致谢。

1 个答案:

答案 0 :(得分:2)

为了调用SubClass' onCreate,当应用程序出现时,应创建SubClass的实例而不是MainActivity的实例启动。

为此,SubClass应成为应用程序的实际主要活动(即AndroidManifest.xml中注册的活动类,在启动应用程序时启动)。