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お勧めしますが、必須ではありません。アクティビティのライフサイクルは気にしないとしましょう。すべてを でセットアップonResumeし、onPause. from と呼ばれる抽象メソッドを提供することonCreateは、何よりも制限的です。

注: 誰にでもこれを行うように勧めているわけではありませ

于 2013-08-15T19:45:49.793 に答える