0

Android アプリのバグを解決しました。getAssets() を使用して、資産ディレクトリからファイルを取得しようとしていました。Application をサブクラス化し、"getApplicationContext" オブジェクトを返して、すべてのクラスが必要なときにいつでもコンテキストを使用できるようにしました。

しかし、多くの頭痛の種と NullPointerExceptions の後、ローカル コンテキスト変数を渡し、代わりに THAT を使用する必要があることがわかりました。グローバル アプリケーション コンテキストを使用すると、getAssets が機能しません。

では、これはなぜですか?それを機能させるローカルコンテキスト変数の何が特別なのですか。必要なメソッドにアクセスして適切に機能させるには、古い「コンテキスト」変数で十分だと思いました。

4

1 に答える 1

0

ローカル コンテキスト変数もアクティビティです。アクティビティは、getAssets() を使用して呼び出す AssetManager が使用する追加機能を提供します。Android は、メモリ リークを回避するために、アクティビティではなくコンテキストを厳密に使用します。ほとんどの場合、アクティビティのコンテキストを使用する必要があります。

于 2012-06-09T23:20:54.837 に答える