[英]makeText method , When to use this and When to use getBaseContext()
我在这个网站上看到了很多问题,并了解了Android文档中的上下文以及在makeText方法中使用它的方法。但是我仍然不了解很多东西:
*我读到活动是上下文的一部分,但是为什么不能在makeText方法的第一个参数中使用MainActivity.class以及为什么此方法需要上下文
抱歉,很长的问题,但我真的听不懂(内容)
活动和上下文之间有什么区别?
如您在Android参考中所见,Activity是Context的间接子类。 (活动扩展了上下文)。 从本质上讲,这意味着活动是“上下文”,因此使用this
来获取活动中的上下文。
上下文是当前类的意思吗?
不完全是。 上下文实际上是应用程序的上下文。 它与应用程序的当前状态有关。
来自文档
它允许访问特定于应用程序的资源和类,以及对应用程序级操作(如启动活动,广播和接收意图等)的调用。
为什么我不能使用此方法代替getBaseContext?
如果您处于活动状态,则可以在活动扩展上下文时使用this
来引用当前上下文。
请注意,如果你是在一个内部类,如onClickListener
,你将不得不使用YourActivity.this
而不是this
,引用的上下文。
getBaseContext和getApplicationContext之间有什么区别?
顾名思义, getApplicationContext()
返回引用整个Application的上下文,并且在应用程序的任何生命周期更改中都将保持不变。
getBaseContext()
。 您可以使用它从另一个上下文内部访问上下文,如本答案所述
为了您的目的(在Toast.makeText()
),请使用YourActivity.this
应该可以正常工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.