ContextをAndroidアプリに保存するには? 多くの場合、Activity (データベース アダプターなど) 以外の従来のクラスで使用する必要があります。
コンテキストを静的フィールドに保存しようとしましたが、メモリ リークが発生する可能性があります。
おそらく、従来のクラスで Context を拡張し、getApplicationContext()
内部で呼び出した方がよいでしょうか?
ContextをAndroidアプリに保存するには? 多くの場合、Activity (データベース アダプターなど) 以外の従来のクラスで使用する必要があります。
コンテキストを静的フィールドに保存しようとしましたが、メモリ リークが発生する可能性があります。
おそらく、従来のクラスで Context を拡張し、getApplicationContext()
内部で呼び出した方がよいでしょうか?
これを行う良い方法はContext
、コンストラクターで を渡すことです。すべてのサンプル コードで、Context が将来の使用のためにカスタム クラスに引数として渡されていることがわかります。
つまり、fedorvlasov の LazyListAdapter (これは Web からの画像の遅延読み込みに関する非常に優れた方法です) では、コンストラクターが次のようになっていることがわかりますpublic LazyAdapter(Activity a, String[] data)
。
このように、Activity の外にいてそれを使用する必要があるときはいつでも、すでにフィールドとして保存されています。
これを行う別の方法 (推奨されません) は、アプリケーションのコンテキストである静的フィールドを使用することです。
public static final Context = getApplicationContext();
これを launch アクティビティに入れると、アプリのライフ スパン全体にわたってアプリケーション コンテキストにアクセスできるようになります。