コンテキストを参照せずに AssetManager を取得するにはどうすればよいでしょうか? 質問する

コンテキストを参照せずに AssetManager を取得するにはどうすればよいでしょうか? 質問する

アプリケーションの への参照を取得する必要があるクラスがありますAssetManager。このクラスは Android UI クラスを拡張しないため、メソッドやそれに類するものはありませんgetContext()。何らかの静的なContext.getCurrentApplicationContext()タイプのメソッドがあるのでしょうか?

AndroidManifest.xml明確に言うと、私のクラスは他のアプリケーション用のライブラリのように使用されることを目的としています。呼び出し元のコンテキストに関連付けられたり、制御されたりすることはありません。

ベストアンサー1

  1. サブクラスを作成するApplication、 例えばpublic class App extends Application {
  2. 新しいクラスを指すようにタグandroid:nameの属性を設定します。例:<application>AndroidManifest.xmlandroid:name=".App"
  3. onCreate()アプリ インスタンスの メソッドで、コンテキスト (例this) を という名前の静的フィールドに保存しapp、このフィールドを返す静的メソッドを作成します (例 ) getApp()

次のように表示されます。

public class App extends Application{

    private static Context mContext;

    @Override
    public void onCreate() {
        super.onCreate();
        mContext = this;
    }

    public static Context getContext(){
        return mContext;
    }
}

App.getContext()これで、コンテキストを取得したいときはいつでも : を使用し、その後getAssetManager()(または) を実行できますApp.getContext().getAssetManager()

おすすめ記事