android - 不引用Context如何获取AssetManager?

标签 android android-context

我有一个类需要获取对其应用程序的AssetManager 的引用。此类不扩展任何类型的 android UI 类,因此它没有 getContext() 方法或任何类似的方法。是否有某种静态 Context.getCurrentApplicationContext() 类型的方法?

澄清一下:我的类(class)旨在像库一样用于其他应用程序。它没有关联的 AndroidManifest.xml 或对调用它的上下文的控制。

最佳答案

  1. 创建 Application 的子类,例如 public class App extends Application {
  2. 设置android:name您的 <application> 的属性AndroidManifest.xml 中的标签指向您的新类(class),例如android: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() )。

关于android - 不引用Context如何获取AssetManager?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4410328/

相关文章:

java - 如何在 onActivityResult 中获取上下文

android - attachBaseContext的作用是什么?

android - 在 Thread 捕获 UncaughtException 之前上下文会发生什么

android - 在应用程序/任务级别获取 onPause 和 onResume 类事件

android - 覆盖通知声音Android

java - 从移动设备到服务器的强大文件传输

android - Kotlin 在 fragment 中显示类型不匹配

java - 根据当前设备语言更改上下文语言

java - Android HttpURLConnection POST 不工作

java - Android View.getDrawingCache() 抛出 CalledFromWrongThreadException