2016-07-28 9 views
-4

contextについてはAndroidで読んでいて、私のアンドロイドアプリケーションで使用していました。それは、なぜ我々は、だけではなく、いくつかのmethodconstructorcomponentは、仮想的な構成要素であり、setContextは、仮想的な方法とコンテキストである(要件に)getConetxt/this/getApplicationContextすることができることをcomponent.setContext(context)、のようなものをcontextを渡します。コンストラクタではなくコンテキストでコンテキストを適用する

誰かがタイトルや何かが適切ではないと思う人は、自由に変更/編集できます。

あなたは、コンストラクタを介して、または任意のセッターメソッドを介してContextを渡す場合は基本的に両方が同じである私はit.Thanksに

+0

downvoters質問を改善できるように、ダウン投票の理由を説明してください。 –

答えて

1

を理解するのに役立ちます。

には、オブジェクトの作成時に初期化されるか、コンストラクタを介して初期化されるか、後で任意のセッターメソッドによって初期化されるクラス内のコンテキストへの参照が必要です。

どちらの場合も、コンテキスト参照はまだ存在します。 熱心な初期化または遅延初期化に関する単なる質問です。

しかし、熱心な初期化の場合、クラス内のコンテキストにアクセスしている間は、コンテキストが確実に初期化されていることを確認して安全に使用できます。

ただし、遅延初期化の場合の保証はありません。そして、サイズノートとしてContextの2つのタイプについての違いをチェックしてください - アプリケーションコンテキストアクティビティコンテキスト

+0

いい考えですが、何らかの技術的理由(ある場合)を待っています。 –

+1

それは単なる考えではありません。技術的にもあなたのことを説明しようとしました。非常にシンプルなJavaの問題です。ちょっと混乱するかもしれません。あなたが何かをもっと知る必要があるかどうか私に教えてください。 –

関連する問題