7

android.app.Activity如果文档/教程说至少onCreate() 必须实现 其方法,为什么不是设计抽象的。

来自http://developer.android.com/guide/components/activities.html

您必须实现此方法。创建活动时系统会调用它。

即使没有明确提及,如果没有实现,拥有android.app.Activity对象也没有意义,或者?我知道父母可能需要在自己的实现中执行代码,但是当父母的一部分会调用需要由开发人员实现的抽象回调方法 onCreate()时,肯定可以设计。onCreate()

这种设计的例子:

public abstract class Activity {


    public abstract void implementThis(Object o);

    public void onCreate(Object o){
        //Do stuff
        implementThis(o);
        //Do other stuff or end.
    }

}

我在这里错过了什么吗?Activity如果开发人员必须并且需要对其进行子类化并提供自定义实现,为什么会有非抽象?

4

3 回答 3

4

在这里阅读:http: //grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/1.5_r4/android/app/Activity.java#Activity.onCreate%28android.os。捆绑%29

“此方法的默认实现会恢复以前被 onSaveInstanceState(android.os.Bundle) 冻结的任何视图状态。”

于 2013-08-15T19:40:25.807 回答
3

如果文档/教程说至少必须实现其方法 onCreate() ,为什么 android.app.Activity 不是设计抽象的。

我认为文档确实抗议太多了。您不必实施onCreate(). 您可以通过创建一个没有onCreate()并运行它的活动来告诉这一点。

没有实现就没有 android.app.Activity 对象,或者?

欢迎您在其他地方(例如 )仔细设置您的 UI onResume()。通常,您在onCreate().

我知道父母可能需要在自己的 onCreate() 实现中执行代码,但是当父 onCreate() 的一部分将调用需要由开发人员实现的抽象回调方法时,肯定可以进行设计。

当然。他们选择不那样做。

于 2013-08-15T19:43:21.047 回答
0

onCreate建议但不是必需的。假设我不关心我的活动生命周期,我可以将所有内容设置onResumeonPause. 提供一个调用 from 的抽象方法onCreate比任何东西都更具限制性。

注意:我并不是建议任何人这样做——如果你真的想这样做,你可以这样做。

于 2013-08-15T19:45:49.793 回答