是否可以在没有上下文的情况下访问 AssetManager?我见过其他人的解决方案是扩展Application,并将Context保存在onCreate()中,并创建一个静态getter来返回Context。我觉得这真的很草率,并且破坏了封装,因为您现在已经将 Context 中的所有内容授予整个应用程序的访问权限。我想我可以将其减少为仅保存 AssetManager,但这仍然是一个非常棘手的修复。
我知道你可以通过调用类似的东西来访问没有上下文的资源
Resources.getSystem().getString()
但是,通过
Resources.getSystem().getAssets()
仅授予您访问某些内置资产的权限,而不是您的资产文件夹中的实际内容。
我是否坚持使用 hacky Application 子类,还是有更清洁的方法?