我在这个网站上看到很多问题,并在Android文档中阅读有关上下文的内容,并在makeText方法中使用它。但我仍然不了解很多东西:
*我读过活动是上下文的一部分,但为什么我们不能在makeText方法的第一个参数中使用MainActivity.class以及为什么这个方法需要上下文
抱歉很长的问题,但我真的无法理解(上下文)答案 0 :(得分:1)
活动与背景之间的差异是什么?
正如您在Android reference中看到的,Activity是Context的间接子类。 (Activity extends Context)。基本上这意味着活动是“上下文”,因此使用this
来获取活动中的上下文。
上下文是指当前的类吗?
不完全是。 Context实际上是应用程序的上下文。它与应用程序的当前状态有关。
来自docs
它允许访问特定于应用程序的资源和类,以及对应用程序级操作的上调,例如启动活动,广播和接收意图等。
为什么我不能使用它而不是getBaseContext?
如果您在Activity中,则可以使用this
来引用当前上下文,因为Activity扩展了上下文。
请注意,如果您在内部课程中,例如onClickListener
,则必须使用YourActivity.this
代替this
来引用上下文。
getBaseContext和getApplicationContext之间有什么区别?
与名称一样,getApplicationContext()
返回引用整个Application的上下文,并且在应用程序的任何生命周期更改中都将保持不变。
getBaseContext()
有点怪异。您可以使用它从另一个上下文中访问上下文,详见this answer
出于您的目的,(在Toast.makeText()
中?),使用YourActivity.this
应该可以正常工作。