【问题标题】:Android Assets without context没有上下文的 Android 资产
【发布时间】:2011-07-07 07:54:44
【问题描述】:

关于 Android 资产管理器,是否可以在没有上下文的情况下从资产中获取文件?我读到我可以用“file:///android_assets”类型的路径初始化一个文件对象,然后从那里获取文件,但它说文件不存在(蜂窝)。

解决此问题的一般解决方法是什么?没有任何方法可以在我需要资产中的文件的地方获取上下文。

谢谢

【问题讨论】:

  • 我们可以知道为什么你不能在这个地方得到上下文吗?
  • 因为我有一个专有的员工,从 UI 部分和员工做所有的事情,我把它们作为库,然后我只有一个需要实现一些接口的类,那时我不'没有上下文。
  • 那么为什么不将上下文作为参数传递呢?
  • 因为创建上下文的地方(Activity)是不可访问的。这是我使用的库.. 二进制部分。

标签: java android assets


【解决方案1】:

要访问不存在的上下文,您可以扩展应用程序类并创建对上下文的静态引用。这样您就可以从应用程序中的任何位置访问它:

public class MyApp extends Application {

    public static Context context;

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

【讨论】:

  • 这似乎是最好的解决方案,这里是 2016 年
  • 这不是一个好的选择,请使用依赖注入来注入上下文依赖。有一些库可以做到这一点:Dagger 2(google)、Dagger(square)、Guice 等。
猜你喜欢
  • 1970-01-01
  • 2022-07-26
  • 2020-01-16
  • 1970-01-01
  • 2014-03-23
  • 2012-03-11
  • 2012-11-23
  • 1970-01-01
  • 2011-07-31
相关资源
最近更新 更多