我有一个类需要获取对其应用程序的AssetManager
的引用。此类不扩展任何类型的 android UI 类,因此它没有 getContext()
方法或任何类似的方法。是否有某种静态 Context.getCurrentApplicationContext()
类型的方法?
澄清一下:我的类(class)旨在像库一样用于其他应用程序。它没有关联的 AndroidManifest.xml
或对调用它的上下文的控制。
最佳答案
- 创建
Application
的子类,例如public class App extends Application {
- 设置
android:name
您的<application>
的属性AndroidManifest.xml
中的标签指向您的新类(class),例如android:name=".App"
- 在
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/