【发布时间】:2011-09-30 10:15:08
【问题描述】:
我几天前才开始探索 Android 世界,我正在通过 Mario Zechner 的书“开始 Android 游戏”进行探索。
我可能有很多关于平台的问题以及到目前为止我所看到的一些事情,但我知道它会变得更好。我现在只想问活动:我看到了活动的生命周期。我知道活动就像屏幕一样。我不知道的是我是否必须在我编写的每个活动中指定 onCreate()、onResume() 等方法。
【问题讨论】:
我几天前才开始探索 Android 世界,我正在通过 Mario Zechner 的书“开始 Android 游戏”进行探索。
我可能有很多关于平台的问题以及到目前为止我所看到的一些事情,但我知道它会变得更好。我现在只想问活动:我看到了活动的生命周期。我知道活动就像屏幕一样。我不知道的是我是否必须在我编写的每个活动中指定 onCreate()、onResume() 等方法。
【问题讨论】:
据我所知onCreate() 是强制性的,其他方法取决于您如何使用活动
【讨论】:
活动的整个生命周期发生在第一次调用 onCreate(Bundle) 到最后一次调用 onDestroy() 之间。一个活动将在 onCreate() 中完成所有“全局”状态的设置,并在 onDestroy() 中释放所有剩余资源。所以 onCreate(Bundle) 应该在活动中。 onResume() 的使用取决于您的应用程序要求。 更多详情请至http://developer.android.com/reference/android/app/Activity.html
【讨论】:
欢迎来到 Android 的世界。
一般来说,充实所有的方法,如 onPause()、onResume() 是很好的做法,但是当你创建一个 android 程序时,通常你只需要 充实 onCreate( ) 活动方法。
除了 onCreate,如果我的术语不正确,请原谅,如果您不覆盖它们,其他方法将遵循“默认”行为。因此,如果您需要应用程序在暂停时执行特定操作,那么最好添加您的 onPause() 版本,否则您可以忽略它。
【讨论】:
您不必指定所有这些方法或其中任何方法。这取决于你想要什么类型的实现
示例
我创建了我的 Activity (A),因为它扩展了 Activity 我没有覆盖任何像 onCreate() 这样的方法,但我创建了一些变量并创建了一些方法。
让我们假设我在那里创建了第二个活动我想鞋一些视图我也使用过 onCreate() 方法如果我想要在活动中定义的变量和方法 AI 可以获得这些变量和方法如果我写 class B extends A
因此,从活动中使用所有这些方法并不是强制性的。如果您不编写自己的实现,则将使用默认实现。
【讨论】:
简短的回答是NO
您不需要在每个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());
}
【讨论】:
您应该编写onCreate() 方法,从基类Activity 重写它来设置视图。应在此处使用onCreate() 方法中的setContentView() 方法自行生成视图。
关于onResume()、onPause()等方法,并不是必须写这些,但在需要实现特定功能时很有用。
另外,作为初学者,请查看本文档中的表 1:http://developer.android.com/guide/topics/fundamentals/activities.html
【讨论】: