Android Compat 类如何工作

dea*_*mer 3 android

有两个班级

1) AppCompatActivity
2) GestureDetectorCompat.
Run Code Online (Sandbox Code Playgroud)

根据 android 文档,这些类是为旧的 android 平台提供支持的。我想知道这是如何工作的。尽管 GestureDetector 和 GestureDetectorCompat 具有相同的 API。GestureDetectorCompat 如何在不存在 GestureDetector 的旧平台上工作?

Com*_*are 5

GestureDetectorCompat 如何在不存在 GestureDetector 的旧平台上工作?

不存在“GestureDetector不存在的旧平台”。GestureDetector自 API 级别 1 以来就已存在。

GestureDetector然而,多年来,API 已经发生了变化,在新的 API 级别中添加了一些方法。GestureDetectorCompat实现最新的 API 并在旧设备上正常降级。您可以GestureDetectorCompat通过阅读其源代码来准确了解其作用。

一般来说,名称以 结尾的类会Compat做同样的事情:实现最新的 API,并且:

  • 如果设备运行的是足够新的 Android 版本,则将方法传递给平台实现

  • 实现一些功能的向后移植,或者

  • 只需忽略该请求,因为该功能无法轻易在旧设备上复制