アンドロイド初心者です...
クラスに直面しなければならない最大の時間は、context
時々私を混乱させます。ある場所では を使用し、ある場所でcontext
は によって呼び出され ます。getApplicationContext()
getContext()
getBaseContext()
このサイトhttp://www.developer.android.com/からそれについて理解しようとしました が、理解するのは困難でした。
アンドロイド初心者です...
クラスに直面しなければならない最大の時間は、context
時々私を混乱させます。ある場所では を使用し、ある場所でcontext
は によって呼び出され ます。getApplicationContext()
getContext()
getBaseContext()
このサイトhttp://www.developer.android.com/からそれについて理解しようとしました が、理解するのは困難でした。
Androidでは、コンテキストは多くの操作に使用されますが、主にリソースの読み込みとアクセスに使用されます。これが、すべてのウィジェットがコンストラクターでContextパラメーターを受け取る理由です。通常のAndroidアプリケーションでは、通常、アクティビティとアプリケーションの2種類のコンテキストがあります。これは通常、開発者がコンテキストを必要とするクラスとメソッドに渡す最初のものです。
getApplicationContext()、getContext()、getBaseContext()、またはthis(アクティビティクラスの場合)を呼び出すことで、コンテキストを取得できます。
コンテキストの一般的な使用法:
新しいオブジェクトの作成:新しいビュー、アダプター、リスナーの作成:
TextView tv = new TextView(getContext()); ListAdapterアダプター=newSimpleCursorAdapter(getApplicationContext()、...);
標準の共通リソースへのアクセス:LAYOUT_INFLATER_SERVICE、SharedPreferencesなどのサービス:
context.getSystemService(LAYOUT_INFLATER_SERVICE)
getApplicationContext()。getSharedPreferences(name、mode);
コンポーネントへの暗黙的なアクセス:コンテンツプロバイダー、ブロードキャスト、インテントに関して
getApplicationContext()。getContentResolver()。query(uri、...);
コンテキストを維持するとメモリリークが発生する可能性があるため、コンテキストを使用する場合は注意が必要です。
要約すると、コンテキスト関連のメモリリークを回避するために、次の点に注意してください。