目前,我正在学习Android开发,在学习的同时,我遇到了一些问题,比如传递“this”上下文、ActivityCompat和ContextCompat。什么是ActivityCompat,为什么,如何,以及我们应该在哪里使用它?我也试着阅读它的文档,但是由于我是android的新手,我无法理解它在文档中的编写方式。
另外,android中的上下文参数是什么,它是如何工作的,以及如何使用它。正如我经常看到的,每当在方法'this‘中询问上下文时,都会将关键字传递给它。你能用通俗易懂的语言解释一下吗?
发布于 2022-06-08 14:16:06
ActivityCompat是一个只有静态成员的object类(类似于Kotlin中的object)。这意味着你永远不会实例化它。它只提供辅助函数。
ActivityCompat专门为常规活动中的一些函数提供了替代方案,当您想要使用的功能在不同版本的Android不同时,可以使用这些功能。
例如,Android9 (SDK 28)显然稍微修改了调用Activity.recreate()时发生的细节。如果您的minSdkVersion设置为低于28,您可能希望确保这种行为是相同的,即使在运行旧版本安卓的设备上也是如此。要做到这一点,您可以调用recreate(),而不是在活动中调用ActivityCompat.recreate(this)。
库中还有其他各种类似于此的"Compat“类,如ViewCompat、WindowCompat和WindowInsetsCompat。
不要将ActivityCompat与AppCompatActivity混为一谈,后者是您通常要子类来创建您自己的活动的类。
https://stackoverflow.com/questions/72546794
复制相似问题