我应该如何 using/not 使用 Android 中已弃用的方法
How should I be using/not using deprecated methods in Android
我太久没有问这个问题了。我在 Android 中遇到过许多已弃用的方法,但在 API 的较新版本中仍然有效。那么,只要它有效,使用已弃用的方法的风险是什么?
这是一个更具体的问题。我正在使用 TimePickers 和 getCurrentHour() method is deprecated in API 23 and replaced with getHour()。我显然不能专门使用 getHour()
,因为大多数设备还没有在 API 23 上,但是正在使用 getCurrentHour()
"wrong" 作为最新版本的 Android?我应该做什么?
- 继续使用
getCurrentHour()
直到几年过去,API 23 成为我的新 minSdkVersion
?
- 在代码中,显式检查 API 版本并根据结果调用
getCurrentHour()
或 getHour()
?
感谢您帮助我学习。
is using getCurrentHour() "wrong" for the newest version of Android?
如果"wrong"你的意思是它会杀死一只小狗,不,它不会错。而对于 API 级别 23,它不太可能引起任何问题。
一般来说,"deprecated"就是"we have something else that we would like you to use"。弃用的内容会发生什么变化:
有时,已弃用的内容在多年后仍然可用。 AbsoluteLayout
于 2009 年在 API 级别 3 中被弃用。它在今天仍然像当时一样疯狂地工作。
有时,已弃用的内容会减少功能。出于安全和隐私原因,ActivityManager
上的各种方法已被弃用,return 是他们过去使用的方法的一个子集。
有时,已弃用的内容将被彻底删除(请参阅:Android 6.0 中的 HttpClient(或者,实际上,看不到它,因为它已被删除))。这很不寻常。
因此,弃用警告是一个标志,需要注意并思考针对这一特定功能的长期策略。
Which of the following should I do?
对于像此方法重命名这样微不足道的事情,您的第一个选择可能是安全的(坚持使用已弃用的方法,直到您的 minSdkVersion
上升到足够高)。
不过,对于任何比这大得多的东西,我会选择你的第二个选项。有时,您会明确地进行版本检查。有时,您可以使用一个库来为您隐藏版本检查。例如,在 support-v4
库中的几乎任何地方,您都会看到 ...Compat
class(例如,NotificationCompat
、ContextCompat
、ActivityCompat
), class 的作用是提供等同于最新最好的 API 级别的 API,但可以在广泛的设备上使用,因为它可以优雅地降级在旧设备上为您进行这些版本检查。
注意:在创建此答案时没有真正的小狗受到伤害
我太久没有问这个问题了。我在 Android 中遇到过许多已弃用的方法,但在 API 的较新版本中仍然有效。那么,只要它有效,使用已弃用的方法的风险是什么?
这是一个更具体的问题。我正在使用 TimePickers 和 getCurrentHour() method is deprecated in API 23 and replaced with getHour()。我显然不能专门使用 getHour()
,因为大多数设备还没有在 API 23 上,但是正在使用 getCurrentHour()
"wrong" 作为最新版本的 Android?我应该做什么?
- 继续使用
getCurrentHour()
直到几年过去,API 23 成为我的新minSdkVersion
? - 在代码中,显式检查 API 版本并根据结果调用
getCurrentHour()
或getHour()
?
感谢您帮助我学习。
is using getCurrentHour() "wrong" for the newest version of Android?
如果"wrong"你的意思是它会杀死一只小狗,不,它不会错。而对于 API 级别 23,它不太可能引起任何问题。
一般来说,"deprecated"就是"we have something else that we would like you to use"。弃用的内容会发生什么变化:
有时,已弃用的内容在多年后仍然可用。
AbsoluteLayout
于 2009 年在 API 级别 3 中被弃用。它在今天仍然像当时一样疯狂地工作。有时,已弃用的内容会减少功能。出于安全和隐私原因,
ActivityManager
上的各种方法已被弃用,return 是他们过去使用的方法的一个子集。有时,已弃用的内容将被彻底删除(请参阅:Android 6.0 中的 HttpClient(或者,实际上,看不到它,因为它已被删除))。这很不寻常。
因此,弃用警告是一个标志,需要注意并思考针对这一特定功能的长期策略。
Which of the following should I do?
对于像此方法重命名这样微不足道的事情,您的第一个选择可能是安全的(坚持使用已弃用的方法,直到您的 minSdkVersion
上升到足够高)。
不过,对于任何比这大得多的东西,我会选择你的第二个选项。有时,您会明确地进行版本检查。有时,您可以使用一个库来为您隐藏版本检查。例如,在 support-v4
库中的几乎任何地方,您都会看到 ...Compat
class(例如,NotificationCompat
、ContextCompat
、ActivityCompat
), class 的作用是提供等同于最新最好的 API 级别的 API,但可以在广泛的设备上使用,因为它可以优雅地降级在旧设备上为您进行这些版本检查。
注意:在创建此答案时没有真正的小狗受到伤害