Android:如果某个元素在某个API级别被弃用,那么它是否仅适用于该API级别以上?

时间:2013-06-06 19:41:23

标签: android api deprecated

如果一个元素在API级别11中被弃用,那么它是否被认为是一个已弃用的元素(如果可以帮助则不被使用),其API级别低于11或者仅为11或更高?如果我正在为API级别8编写应用程序,我是否应该关注API级别11中已弃用的元素?

这对我来说有点混乱。在Android API中,例如,对于SQLiteDatabase类,方法setLockingEnabled(boolean lockingEnabled)说: 此方法在API级别16中已弃用。此方法现在不执行任何操作。不要使用。

这是否意味着它对下面的所有API级别或仅仅是API级别16及以上都没有任何作用?

如果您正在开发专业的商业软件,那么避免被弃用的元素有多重要?

4 个答案:

答案 0 :(得分:5)

  

如果某个元素在API级别11中已弃用,那么在API级别低于11还是仅为11及以上时,它是否被视为已弃用的元素(如果可以帮助则不被使用)?

11岁及以上。

  

如果我正在为API级别8编写应用程序,我是否应该关注API级别11中已弃用的元素?

Android中的“弃用”通常意味着“我们认为您应该考虑更好的解决方案,但我们会尽可能地支持这种旧方法”。虽然你应该努力停止使用已弃用的方法,但这不是你应该恐慌的事情,而是放下所有要立即解决的问题,而且在弃用之前,你经常需要旧的Android操作系统级别的弃用材料

  

这是否意味着它对下面的所有API级别或仅仅是API级别16及以上都没有任何作用?

既然他们说“现在什么都不做”,可以说以前做了一些事情(非一无所有?)。

  

如果您正在开发专业的商业软件,那么避免被弃用的元素有多重要?

在这种方法的特定情况下,我会跳过使用它,但这更多是由于这种方法的性质。

作为一个反例,设置偏好设置屏幕的方式在API级别11+(PreferenceFragmentPreferenceActivity)与之前(仅PreferenceActivity)之间存在很大差异。您无法避免旧设备上已弃用的元素,因为没有可行的替代方案(例如,PreferenceFragment的后端)。

答案 1 :(得分:1)

来自Docs

  

用于标记程序员不应再使用的程序元素的注释类型。如果使用已弃用的程序元素,编译器会发出警告。

我建议尽可能不要使用它们。当你这样做时,我会考虑到这个对象,方法等......在将来的某个时候可能不起作用。在构建应用程序时,您通常希望构建它,以便将来可以轻松维护和灵活。出于这个原因,如果没有必要,我不会使用它们,而且几乎总有另一种方法可以做某事

答案 2 :(得分:1)

值得一提的是,有时一种方法可能会变得“未被贬低”(如果这是一个真正的词)。例如,WebSettings setLayoutAlgorithm方法在4.0.1中已弃用,稍后在4.0.3中恢复,只是其中一个算法已弃用。

但一般来说,在不推荐使用API​​之前对API版本使用该方法是安全的,之后不推荐使用。请注意,它可能并不总是那么简单。

答案 3 :(得分:0)

当一个项目被弃用时,这意味着它不应再在不推荐使用它的API级别之后使用。将它用于早期API级别是安全的,但如果您正在为较新的API级别开发它,则不应使用它。不推荐使用的方法/元素/等。可以在将来删除,因此虽然它现在可能仍然有效,但您将来可能会得到不需要的结果。

当它说该方法现在没有做任何意味着它不再在API 16及更高版本中做任何事情时(或者16以上不能记住但是为了安全我会说16+)。