我正在关注一些学习android的教程,但问题是它们没有包含所有详细信息.
特别是,如果可以对getApplicationContext()的用例有一些了解,那就太好了.
最佳答案
您可以将上下文视为应用程序资源(即res文件夹中的所有内容)和Android运行时的句柄.诸如Activity,Service,Application之类的类均从Context继承.
通常,每当需要Context时,您都会传递当前的Activity,因为Activity是从Context继承的.
当需要Context时,您还将找到有关使用getApplicationContext()而不是活动的信息.这通常是为了防止需要上下文的任何代码不必要地保留对您的Activity的引用,这在最坏的情况下可能会阻止对其进行垃圾回收(在这种情况下,在应用程序中传递并不是真正的大问题,因为预计会存在很长时间).
但是,在某些情况下,方法的参数为Context类型,但实际上需要Activity.我相信使用startActivity()就是其中一个示例(如果我错了,请纠正我).