什么是android中的OnCreate方法

Posted

技术标签:

【中文标题】什么是android中的OnCreate方法【英文标题】:What is a OnCreate method in android 【发布时间】:2013-11-01 13:39:45 【问题描述】:

我是 android 新手,试图了解以下方法的作用

public void onCreate(Bundle savedInstanceState)

        super.onCreate(savedInstanceState);
        // load the layout
        setContentView(R.layout.filters); 

我的研究 ::

onCreate 用于启动活动 super用于调用父类构造函数 setContentView 用于设置xml

但这一切是什么 -

onCreate(Bundle savedInstanceState) .... 为什么那个捆绑包来了 那里,是什么 那是什么super.onCreate(savedInstanceState);

一些通俗的解释会很有帮助

【问题讨论】:

您可以在文档中找到所有这些答案。 ActivityActivities explained with examples 【参考方案1】:

如果您将应用程序的状态保存在包中(通常是 onSaveInstanceState 中的非持久动态数据),如果需要重新创建活动(例如,方向更改),可以将其传递回 onCreate。如果方向发生变化(即将您的设备从横向模式旋转到纵向,反之亦然),则重新创建活动并再次调用 onCreate() 方法,这样您就不会丢失此先验信息。如果未提供数据,则 savedInstanceState 为 null。

更多信息http://developer.android.com/guide/topics/resources/runtime-changes.html

【讨论】:

【参考方案2】:

Bundle 用于保存和恢复活动的状态信息。在诸如方向更改或应用程序终止或任何其他导致再次调用 onCreate() 的情况下,savedInstanceState 包可用于重新加载以前的状态信息。 熟悉this article about Activity lifecycle 会有所帮助。

【讨论】:

【参考方案3】:

由于重写了onCreate方法,所以使用super关键字调用基类的onCreate方法。我觉得

【讨论】:

【参考方案4】:

首先super.onCreate(savedInstanceState);调用superclass中的方法 如果有任何东西损坏活动,则保存活动的InstanceState,因此将其保存在instanceState 中,因此当重新加载活动时,它将与之前相同。

【讨论】:

【参考方案5】:

super用于调用父类构造函数

super.onCreate(savedInstanceState); 调用超类的onCreate() 方法,而不是构造函数。

【讨论】:

以上是关于什么是android中的OnCreate方法的主要内容,如果未能解决你的问题,请参考以下文章

Android 11 onCreate() 调用每秒钟都丢失

Android app启动activity并调用onCreate()方法时都默默地干了什么?

android Service oncreate 在UI线程 何时用service,何时用thread

android中的fragment是先执行oncreate还是oncreateview

什么是 onCreate(Bundle savedInstanceState)

Android查缺补漏(View篇)--在 Activity 的 onCreate() 方法中为什么获取 View 的宽和高为0?