0

コールバック関数の概念を正しく理解したことがありません。現在、Java と Android のプログラミングを勉強しています。そして私はこの方法に遭遇しました。

public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_main);
}

通常のメソッドの私の理解から、このメソッドの実装内で、このメソッドは自分自身を呼び出しているため、実装が再び開始され、再び自分自身を呼び出すなど...これにより、実装の呼び出しと開始の無限ループが発生しますこの方法の。

短くて簡単で、コールバックメソッドとは何か、それらの実行の流れは何かを説明しているドキュメント/チュートリアルなどを誰かが提案してくれませんか。

また

このメソッド onCreate() の実装の実行の流れと、メソッド自体の呼び出しが必要な理由と、この呼び出しが実際に行うことを簡単に教えてもらえますか。

私の仕事はこのコンセプトに依存しているので、できるだけ早く返信してください。

4

4 に答える 4

3

onCreateいいえ、スーパークラスのメソッドを呼び出すので、無限ループにはなりませんsuper.onCreate()

呼び出しthis.onCreate()ても、無限ループで終わることはありません。を取得しjava.lang.StackOverflowErrorます。

コールバック メソッドは Android ランタイムによって呼び出され、Activity.

于 2013-10-27T13:00:47.793 に答える
1

呼び出し `super.onCreate()' は、現在のクラスのスーパークラスでメソッド onCreate を呼び出します。X が Y を拡張する場合、X のメソッドで super.onCreate() が Y の onCreate() を呼び出します。Y の onCreate() の実行が終了すると、X の super.onCreate() の次の行から実行が再開されます。

コールバック メソッドは別の問題です。何らかのイベントの発生時に、何らかのフレームワーク (Android など) によってコードを呼び出す必要がある場合は、コールバック メソッドを使用します。この場合、参照されているものが何であれ作成されると、それはあなたのコードを呼び出します。これにより、コードはアプリケーションに固有のことを行う機会が与えられます。通常、このようなことがいつ発生するかを知ることは困難です。特に Android のような GUI 環境では、コールバックがこの状況を処理する一般的な方法になります。

于 2013-10-27T13:24:44.803 に答える
1

super.onCreate(savedInstanceState);

onCreateクラスのメソッドでコードを実行しますActivity(現在、 のサブクラスにいるActivityためActivity、スーパー クラスです)。すでに定義されているいくつかの基本的な機能をセットアップするためにこれを行っています。

これはコールバックとは関係ありません。

于 2013-10-27T13:01:07.317 に答える
1

自分自身を呼び出しません。を呼び出すと、そのスーパークラスのメソッドがsuper.onCreate()呼び出されます。onCreate()

于 2013-10-27T13:01:15.833 に答える