3

我正在关注一些学习 android 的教程,但问题是它们不包含所有细节。

具体来说,如果能对getApplicationContext().

4

1 回答 1

3

您可以将 aContext视为应用程序资源(即res文件夹中的所有内容)和 Android 运行时的句柄。Activity, Service,等类Application继承自Context, 等等。

Activity通常,只要需要 a ,您就会传入 current Context,因为 Activity 继承自 Context。

当需要 a 时,您还将找到有关使用getApplicationContext()而不是您的活动的信息Context。这通常是为了防止任何需要 Context 的代码不必要地持有对您的 Activity 的引用,在最坏的情况下,这可能会阻止它被垃圾收集(Application在那种情况下传入并不是一个真正的大问题,因为它是预期的待很长时间)。

但是,在某些情况下,方法的参数是 type Context,但Activity实际上是必需的。使用startActivity()是我相信的一个例子(如果我错了,请纠正我)。

于 2012-08-06T16:05:20.970 回答