Android 为什么全局应用程序上下文不能与“;getassets";
刚刚解决了我Android应用程序中的一个bug。我试图使用getAssets()从我的资产目录中提取一个文件。我对应用程序进行了子类化,并返回了一个“getApplicationContext”对象,这样我的所有类都可以在需要时使用上下文 但在经历了很多令人头痛的事情和NullPointerException之后,我发现我需要传递一个本地上下文变量并使用它。如果我使用全局应用程序上下文,getAssets将无法工作Android 为什么全局应用程序上下文不能与“;getassets";,android,Android,刚刚解决了我Android应用程序中的一个bug。我试图使用getAssets()从我的资产目录中提取一个文件。我对应用程序进行了子类化,并返回了一个“getApplicationContext”对象,这样我的所有类都可以在需要时使用上下文 但在经历了很多令人头痛的事情和NullPointerException之后,我发现我需要传递一个本地上下文变量并使用它。如果我使用全局应用程序上下文,getAssets将无法工作 为什么会这样?使其工作的局部上下文变量有什么特别之处。我认为任何旧的“上下文”
为什么会这样?使其工作的局部上下文变量有什么特别之处。我认为任何旧的“上下文”变量都足以访问必要的方法并使它们正常工作 局部上下文变量也是一种活动。该活动提供了使用getAssets()调用的AssetManager使用的额外功能。Android严格使用上下文而不是活动来避免内存泄漏。您几乎应该始终使用活动的上下文。请参阅Commonware对此问题的答案。。。特别是,关于为什么不使用
getApplicationContext()
。。。它不是一个完整的上下文,支持活动所做的一切。您将尝试在此上下文中执行的各种操作都将失败,主要与GUI有关。和相关链接。谢谢-这是一个很好的资源。