ActivityCompat 和 ContextCompat 有啥区别?

Posted

技术标签:

【中文标题】ActivityCompat 和 ContextCompat 有啥区别?【英文标题】:What's the difference between ActivityCompat and ContextCompat?ActivityCompat 和 ContextCompat 有什么区别? 【发布时间】:2016-11-08 20:23:22 【问题描述】:

我正在尝试使用 android 相机,对于 API 23 或更高版本,它需要在运行时请求许可。根据documentation,我可以使用ActivityCompat 或ContextCompat 来完成。我不明白两者之间有什么区别以及它们的取舍。

感谢您的宝贵时间。

【问题讨论】:

ActivityCompat 扩展了 ContextCompat 添加有用信息here。清晰而简短。 【参考方案1】:

我不明白这两者之间有什么区别以及它们的取舍

真的没有取舍。不知道他们为什么这么写 - checkSelfPermission() 是 ContextCompat 的一种方法,而 ActivityCompatContextCompat 的子类(子类),因此您可以在需要 ContextCompat 类的对象时传递任何一个。

继承层次结构(docs):

【讨论】:

谢谢马尔辛!你回答了我的问题。我不知道 ActivityCompat 是 ContextCompat 的直接子代。 很高兴它有帮助。但是你总是可以在每个类的文档中检查类层次结构,即检查ActivityCompat docs,你会看到(在顶部)它扩展了ContextCompat,它扩展了Object 我有同样的问题,我认为这个答案可以添加一个非常简短的说明,说明为什么 ContextCompat 和 ActivityCompat 在所有示例中的使用方式不同,因为这就是导致这种混淆的原因地点。

以上是关于ActivityCompat 和 ContextCompat 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

导入android.support.v4.app.ActivityCompat;

Activity.requestPermissions 与 ActivityCompat.requestPermissions

离子电容器构建找不到符号 android.support.v4.app.ActivityCompat

Android 运行时权限流程:我可以使用 ActivityCompat.requestPermissions 发送额外内容吗?

检查方法中的 Android 权限

为什么要显示请求权限不能正常工作?