是否可以在没有上下文的情况下访问AssetManager?我见过其他人的解决方案是扩展Application,并将Context保存在onCreate()中,并创建一个静态getter来返回Context。我觉得这非常草率,打破了封装,因为您现在可以访问上下文中的所有内容到您的整个应用程序。我想我可以减少它只保存AssetManager,但它仍然是一个非常hacky修复。
我知道你可以通过调用类似
的内容来访问没有Context的资源Resources.getSystem().getString()
但是,通过
访问AssetManagerResources.getSystem().getAssets()
仅授予您访问某些内置资源的权限,而不是您资产文件夹中的实际内容。
我是否坚持使用hacky Application子类,还是有更简洁的方法?
答案 0 :(得分:0)
您需要什么资产?只是为了打开文件?可以使用getResourceAsStream方法访问没有Context的资源文件,但它们必须放在与java源文件相同的文件夹中。