我是否需要在我编写的每个活动中实现onCreate(),onResume等方法?

时间:2011-07-07 12:17:55

标签: android methods lifecycle

我几天前已经开始探索Android世界了,我正在通过Mario Zechner的书“开始Android游戏”来做这件事。

到目前为止,我可能对平台和我见过的一些事情有很多疑问,但我知道它会变得更好。我现在要问的只是活动:我看到了活动的生命周期。我知道活动就像屏幕一样。我不知道的是,我是否必须在我编写的每个活动中指定onCreate(),onResume()等方法。

6 个答案:

答案 0 :(得分:4)

据我所知onCreate()是强制性的,其他方法取决于您如何使用该活动

答案 1 :(得分:1)

活动的整个生命周期发生在第一次调用onCreate(Bundle)到最后一次调用onDestroy()之间。活动将在onCreate()中完成所有“全局”状态设置,并释放onDestroy()中的所有剩余资源。所以onCreate(Bundle)应该在活动中。 onResume()的使用取决于您的应用程序要求。 有关详情,请转至http://developer.android.com/reference/android/app/Activity.html

答案 2 :(得分:1)

欢迎来到Android世界。

一般来说,最好充实所有方法,例如onPause(),onResume()但是当你创建一个android程序时,通常你只需要需要来充实onCreate( )活动方法。

除了onCreate,如果我的术语不正确,请原谅,如果不覆盖它们,其他方法将遵循“默认”行为。因此,如果您需要应用程序在暂停时执行某些特定操作,那么现在是添加onPause()版本的好时机,否则您可以将其遗漏。

答案 3 :(得分:0)

您必须指定所有这些方法或其中任何方法。这取决于您想要的实施类型

示例 我创建了我的Activity(A),因为它扩展了Activity我没有覆盖任何方法,比如onCreate(),但是我创建了一些变量并创建了一些方法。 让我们假设我在那里创建了第二个活动我想要一些我已经使用onCreate()方法的视图如果我想要在活动AI中定义的变量和方法可以获得那些变量和方法如果我写class B extends A < / p>

因此,不必从活动中使用所有这些方法。如果您没有编写自己的实现,那么默认实现将会发挥作用。

答案 4 :(得分:0)

简短回答将是

您无需在每个Activity onCreate的代码中指定,依此类推。无论如何,在父Activity中会有onCreate

但是长回答说:良好的做法不是依赖隐式/不可见的代码,而是让代码在你的控制之下(即使它是假的)。我以这种方式编写所有onCreate / onDestroy等代码:

public static final boolean DEBUG=true;

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    if(DEBUG)
        Log.d(TAG, "Creating "+this.toString());
}

答案 5 :(得分:0)

您应该通过从基类Activity重写它来编写onCreate()方法来设置视图。应使用setContentView()方法中的onCreate()方法在此处生成视图。 关于onResume()onPause()和其他方法,编写这些方法并不是强制性的,但在需要实现特定功能时非常有用。

另外,作为初学者,请查看本文档中的表1 ,希望这有助于您阐明自己的概念: http://developer.android.com/guide/topics/fundamentals/activities.html