我有类似的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中。
知道我做错了吗?
提前致谢。
答案 0 :(得分:2)
为了调用SubClass
' onCreate
,当应用程序出现时,应创建SubClass
的实例而不是MainActivity
的实例启动。
为此,SubClass
应成为应用程序的实际主要活动(即AndroidManifest.xml中注册的活动类,在启动应用程序时启动)。