4

ContextをAndroidアプリに保存するには? 多くの場合、Activity (データベース アダプターなど) 以外の従来のクラスで使用する必要があります。

コンテキストを静的フィールドに保存しようとしましたが、メモリ リークが発生する可能性があります。

おそらく、従来のクラスで Context を拡張し、getApplicationContext()内部で呼び出した方がよいでしょうか?

4

1 に答える 1

2

これを行う良い方法はContext、コンストラクターで を渡すことです。すべてのサンプル コードで、Context が将来の使用のためにカスタム クラスに引数として渡されていることがわかります。

つまり、fedorvlasov の LazyListAdapter (これは Web からの画像の遅延読み込みに関する非常に優れた方法です) では、コンストラクターが次のようになっていることがわかりますpublic LazyAdapter(Activity a, String[] data)

このように、Activity の外にいてそれを使用する必要があるときはいつでも、すでにフィールドとして保存されています。

これを行う別の方法 (推奨されません) は、アプリケーションのコンテキストである静的フィールドを使用することです。

public static final Context = getApplicationContext();

これを launch アクティビティに入れると、アプリのライフ スパン全体にわたってアプリケーション コンテキストにアクセスできるようになります。

于 2012-07-08T05:35:37.837 に答える