我有一个抽象的活动作为其他活动的基础: 由于我在派生的活动中设置了内容视图,并且我在所有活动中都有共同的UI元素,因此我希望在设置内容视图后在派生的活动中执行代码。 如何在不将方法调用放在每个派生Activity中的情况下在抽象类中执行此操作?
abstract public class BaseActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
public void methodToBeCalledAfterOnCreateOfDerivedActivity(){
//method that does work on common UI elements, so setContentView() needs to have been called
}
}
public class myActivity extends BaseActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//how can I call this method automatically at the end of this onCreate without explicitly putting the method here:
methodToBeCalledAfterOnCreateOfDerivedActivity();
}
}
答案 0 :(得分:3)
第一次创建Activity或需要重新创建视图时的调用序列是:
onCreate()
onCreateView()
onViewCreated()
onViewStateRestored()
onStart()
onResume()
因此,如果您只需要在创建视图时调用方法,则可以在onViewCreated()中执行此操作。如果您需要在重新启动活动时运行它,则可以在onStart()中执行此操作。
答案 1 :(得分:0)
onStart()
之后调用 onCreate()
。你可以把你的帖子onCreate()
功能放在那里。使用抽象类onCreate()
中设置的标志来区分onStart()
和onCreate()
- onStop()
之后的onRestart()
次调用。