android - 为什么 OnCreate 应该在 Activity 启动时只调用一次?

标签 android android-activity oncreate android-lifecycle

我想知道,为什么 OnCreate() 在 Activity 开始时只被调用一次?

我们可以在同一 Activity 中多次调用 OnCreate() 吗?

如果是,那我们怎么调用它呢?谁能举个例子?

非常感谢!!!

最佳答案

为什么要再次调用它?除非 Activity 被重建,这是由系统调用的。您不能手动调用 OnCreate,这与您不会两次调用 setContentView() 的原因相同。作为文档:

onCreate(Bundle) is where you initialize your activity. Most importantly, here you will usually call setContentView(int) with a layout resource defining your UI, and using findViewById(int) to retrieve the widgets in that UI that you need to interact with programmatically. Once you finish init your widgets Why would you?

更新 我收回一些话,你可以手动执行此操作,但我仍然不明白为什么要调用它。你试过了吗Fragments
示例代码:

public class MainActivity extends Activity implements OnClickListener {
        private Button btPost;
        private Bundle state;
        private int counter = 0;

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            state = savedInstanceState;
            btPost = (Button) findViewById(R.id.btPost);
            btPost.setOnClickListener(this);
            Toast.makeText(getBaseContext(), " " + counter, Toast.LENGTH_LONG)
                    .show();
        }

        @Override
        public void onClick(View v) {
            counter++;
            this.onCreate(state);
        }
    }

关于android - 为什么 OnCreate 应该在 Activity 启动时只调用一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13964943/

相关文章:

java - Android Spinner View : difference between setSelection (int position) and setSelection (int position, boolean 动画)?

java - Dagger 2 Android - 将()依赖项注入(inject) ViewModel 与具有依赖项引用的应用程序

android - Proguard,请勿混淆gradle jars

java - 如何从另一个 Activity 创建动态选项卡

android - 如何从 Activity 中启动另一个应用程序(下载或预安装)?

android - google maps v2 无法强制关闭

android - 谷歌播放 : The form field "Compliance Status" to delete a previously declared Permission for a new APK is not shown

android - 按下主页按钮时运行哪个方法?

java - 错误 : SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length

java - onCreate 方法错误(FragmentActivity)