0

刚刚解决了我的 Android 应用程序中的一个错误。我试图使用 getAssets() 从我的资产目录中提取文件。我将 Application 子类化并返回了一个“getApplicationContext”对象,这样我的所有类都可以在需要时使用上下文。

但是在经历了很多头痛和 NullPointerExceptions 之后,事实证明我需要传递一个本地上下文变量并改用它。如果我使用全局应用程序上下文,getAssets 不起作用!

那么这是为什么呢?使它起作用的局部上下文变量有什么特别之处。我认为任何旧的“上下文”变量都足以访问必要的方法并使它们正常工作!

4

1 回答 1

0

本地上下文变量也是一个活动。Activity 提供了您使用 getAssets() 调用的 AssetManager 使用的额外功能。为了避免内存泄漏,Android 严格使用上下文而不是活动。你应该几乎总是使用你的 Activity 的上下文。

于 2012-06-09T23:20:54.837 回答