【问题标题】: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。清晰而简短。

标签: android android-camera android-camera-intent android-camera2


【解决方案1】:

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

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

继承层次结构(docs):

【讨论】:

  • 谢谢马尔辛!你回答了我的问题。我不知道 ActivityCompat 是 ContextCompat 的直接子代。
  • 很高兴它有帮助。但是你总是可以在每个类的文档中检查类层次结构,即检查ActivityCompat docs,你会看到(在顶部)它扩展了ContextCompat,它扩展了Object。
  • 我有同样的问题,我认为这个答案可以添加一个非常简短的说明,说明为什么 ContextCompat 和 ActivityCompat 在所有示例中的使用方式不同,因为这就是导致这种混淆的原因地点。
猜你喜欢
  • 2010-10-02
  • 2011-12-12
  • 2010-09-16
  • 2012-03-14
  • 2012-02-06
  • 2011-02-25
  • 2011-11-22
  • 2015-03-26
  • 2013-08-19
相关资源
最近更新 更多