繁体   English   中英

makeText方法,何时使用此方法以及何时使用getBaseContext()

[英]makeText method , When to use this and When to use getBaseContext()

您好,我在理解上下文以及在makeText中使用它时遇到问题

我在这个网站上看到了很多问题,并了解了Android文档中的上下文以及在makeText方法中使用它的方法。但是我仍然不了解很多东西:

  • 活动和上下文之间有什么区别? *
  • 上下文是当前类的意思吗?
  • 为什么我不能使用此方法代替getBaseContext?
  • getBaseContext和getApplicationContext之间有什么区别?

*我读到活动是上下文的一部分,但是为什么不能在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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM