没有上下文的Android资产

7
关于Android资产管理器,是否可以在没有上下文的情况下从资产中获取文件?我读到可以使用“file:///android_assets”类型的路径初始化File对象,然后从那里获取文件,但它说文件不存在(Honeycomb)。
这个问题的一般解决方法是什么?在需要从资产中获取文件的地方没有任何获取上下文的方式。
谢谢。

我们可以知道为什么您无法在此处获取上下文吗? - MByD
因为我有一些专有的员工,他们负责从UI部分开始做所有事情,然后我将它们作为库获得,此时我只需要一个需要实现某个接口的类,此时我没有上下文(Context)。 - Pett
那么为什么你不将上下文作为参数传递呢? - MByD
因为创建上下文的地方(即Activity)无法访问。这是我使用的库...二进制部分。 - Pett
1个回答

4
为了在没有Context的情况下获得访问权限,您可以扩展Application类并创建对Context的静态引用。这样,您就可以从应用程序中的任何地方访问它:
public class MyApp extends Application {

    public static Context context;

    @Override
    public void onCreate() {
        super.onCreate();
        context = getApplicationContext();
    }
}

在2016年,这似乎是最好的解决方案。 - Fattie
这不是一个好的选择,请使用依赖注入来注入上下文依赖。有一些库可以做到这一点:Dagger 2(谷歌),Dagger(方块),Guice等。 - rupinderjeet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接