0

我在想是否有一种方法可以确定传递给类似方法的最佳上下文是什么,Toast.makeText()或者当SharedPreferences使用context.getSharedPreferences().. 时,是否有理由不总是使用Application 上下文来代替ActivityorIntentService 上下文?

4

1 回答 1

0

为了解释差异,从https://stackoverflow.com/a/4128799/1143977复制

它们都是 Context 的实例,但应用程序实例与应用程序的生命周期相关联,而 Activity 实例与 Activity 的生命周期相关联。因此,他们可以访问有关应用程序环境的不同信息。

如果您阅读 getApplicationContext 上的文档,它会指出,如果您需要一个生命周期与当前上下文分开的上下文,您应该只使用它。

Activity 上下文大概有一些关于当前活动的信息,这些信息是完成这些调用所必需的。如果您显示确切的错误消息,则可能能够指出它到底需要什么。

但总的来说,除非您有充分的理由不这样做,否则请使用活动上下文。

于 2012-09-05T21:39:08.480 回答