安卓中的OnCreate方法是什么?

31

我是新手安卓开发者,正在尝试理解下面的方法是做什么的

public void onCreate(Bundle savedInstanceState)
{
        super.onCreate(savedInstanceState);
        // load the layout
        setContentView(R.layout.filters); 
}

我的研究 ::

  • onCreate 用于启动一个活动
  • super 用于调用父类构造函数
  • setContentView 用于设置 XML

但这些到底是什么意思呢 -

  • onCreate(Bundle savedInstanceState) .... 为什么要有这个 bundle,它是什么
  • 那个 super.onCreate(savedInstanceState); 是什么意思

简单易懂的解释会很有帮助


你可以在文档中找到所有这些答案。Activity 通过示例解释的活动 - Mikel
5个回答

24

如果您将应用程序的状态保存在一个bundle中(通常是onSaveInstanceState中的非持久性动态数据),则如果需要重新创建活动(例如方向更改),它可以传递回onCreate。 如果方向发生变化(即从横向模式旋转设备到纵向模式或相反),则会重新创建活动并再次调用onCreate()方法,以便您不会失去先前的信息。 如果没有提供数据,则savedInstanceState为null。

有关详细信息,请参阅http://developer.android.com/guide/topics/resources/runtime-changes.html


13

Bundle用于保存和恢复Activity的状态信息。在出现诸如方向改变、杀死应用程序或其他需要重新调用onCreate()的情况时,savedInstanceState bundle可以用来重新加载以前的状态信息。 熟悉Activity生命周期的这篇文章会有所帮助。


2

由于onCreate方法被重写,所以使用super关键字调用基类的onCreate方法。我认为"最初的回答"如此。


2

首先,super.onCreate(savedInstanceState); 调用了父类的方法,并保存了活动的 InstanceState。如果有任何损坏,它会被保存在 instanceState 中,因此当重新加载该活动时,它将恢复为之前的状态。


1

super用于调用父类构造函数

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接