在onCreate派生活动之后调用抽象活动中的方法

时间:2014-06-21 09:28:14

标签: android abstract-class

我有一个抽象的活动作为其他活动的基础: 由于我在派生的活动中设置了内容视图,并且我在所有活动中都有共同的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();
    }
}

2 个答案:

答案 0 :(得分:3)

第一次创建Activity或需要重新创建视图时的调用序列是:

onCreate()
onCreateView()
onViewCreated()
onViewStateRestored()

onStart()
onResume()

因此,如果您只需要在创建视图时调用方法,则可以在onViewCreated()中执行此操作。如果您需要在重新启动活动时运行它,则可以在onStart()中执行此操作。

答案 1 :(得分:0)

onStart()之后调用

onCreate()。你可以把你的帖子onCreate()功能放在那里。使用抽象类onCreate()中设置的标志来区分onStart()onCreate() - onStop()之后的onRestart()次调用。