4

如果一个元素在 API 级别 11 中被弃用,它是否在 API 级别低于 11 或仅在 11 及以上的 API 级别中被视为弃用元素(如果可以帮助,则不使用)?如果我正在为 API 级别 8 编写应用程序,我应该关心 API 级别 11 中已弃用的元素吗?

这让我有点困惑。在 Android API 中,例如对于 SQLiteDatabase 类,方法 setLockingEnabled(booleanlockingEnabled) 表示:此方法在 API 级别 16 中已弃用。此方法现在什么都不做。不使用。

这是否意味着它对所有低于 API 级别的 API 或仅对 API 级别 16 及更高级别都不执行任何操作?

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

4

4 回答 4

6

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

只有11岁及以上。

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

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

这是否意味着它对所有低于 API 级别的 API 或仅对 API 级别 16 及更高级别都不执行任何操作?

既然他们说“现在什么都不做”,那么可以肯定地说它以前做了一些事情(非什么都不做?)。

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

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

作为一个反例,API Level 11+(PreferenceFragmentPreferenceActivity)与之前(PreferenceActivity单独)相比,设置偏好屏幕的方式有很大不同。您无法避免旧设备上已弃用的元素,仅仅是因为没有可行的替代方案(例如,backport of PreferenceFragment)。

于 2013-06-06T19:51:17.763 回答
2

文档

用于标记程序员不应再使用的程序元素的注释类型。如果使用了不推荐使用的程序元素,编译器会产生警告。

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

于 2013-06-06T19:46:40.660 回答
2

值得一提的是,有时一种方法可能会变得“不推荐使用”(如果这是一个真实的话)。例如,WebSettings setLayoutAlgorithm方法在 4.0.1 中被弃用,然后在 4.0.3 中恢复,只是其中一种算法被弃用。

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

于 2013-06-06T20:17:39.950 回答
1

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

当它说该方法现在什么都不做时,这意味着它不再在 API 16 及更高版本中做任何事情(或者 16 以上不记得了,但为了安全起见,我会说 16+)。

于 2013-06-06T19:46:51.207 回答