【问题标题】:Do I need to implement the onCreate(), onResume, etc methods in every activity I write?我是否需要在我编写的每个活动中实现 onCreate()、onResume 等方法?
【发布时间】:2011-09-30 10:15:08
【问题描述】:

我几天前才开始探索 Android 世界,我正在通过 Mario Zechner 的书“开始 Android 游戏”进行探索。

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

【问题讨论】:

    标签: android methods lifecycle


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        欢迎来到 Android 的世界。

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

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

        【讨论】:

          【解决方案4】:

          您不必指定所有这些方法或其中任何方法。这取决于你想要什么类型的实现

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

          因此,从活动中使用所有这些方法并不是强制性的。如果您不编写自己的实现,则将使用默认实现。

          【讨论】:

            【解决方案5】:

            简短的回答是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());
            }
            

            【讨论】:

              【解决方案6】:

              您应该编写onCreate() 方法,从基类Activity 重写它来设置视图。应在此处使用onCreate() 方法中的setContentView() 方法自行生成视图。 关于onResume()onPause()等方法,并不是必须写这些,但在需要实现特定功能时很有用。

              另外,作为初学者,请查看本文档中的表 1http://developer.android.com/guide/topics/fundamentals/activities.html

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多