我正在学习学习android的一些教程,但问题是它们不包含所有细节。
具体来说,如果对getApplicationContext()
的用例有所了解,那就太棒了。
答案 0 :(得分:3)
您可以将Context
视为应用程序资源(即res
文件夹中的所有内容)和Android运行时的句柄。 Activity
,Service
,Application
等类继承自Context
等。
通常情况下,只要需要Activity
,您就会传入当前的Context
,因为Activity会从Context继承。
当需要getApplicationContext()
时,您还会找到有关使用Context
而非您的活动的信息。这通常是为了防止任何需要Context的代码不必要地保存对Activity的引用,在最坏的情况下可能会阻止它被垃圾收集(传入Application
并不是真正的大问题情景,因为它预计将存在很长时间)。
但是,在某些情况下,方法的参数的类型为Context
,但实际上需要Activity
。使用startActivity()
是我相信的一个例子(如果我错了,请纠正我)。