什么是“此方法已被弃用”是指应用程序开发人员
我看到不less好的旧有用的方法 ,甚至整个课程都被“弃用和废弃”了。
但是用来调用这些方法的代码仍然可以正常工作。 那么,作为一个Android应用程序开发人员,这对我意味着什么呢?
- 只要我想要继续使用此方法,因为更新的SDK将始终保持向后兼容。
- 只要我为较旧的目标(例如API 8)构build,它就会工作,但是如果从API 14开始构build,编译器将拒绝完成构build。
- (1)和(2)
- 其他?
当没有提供替代方法时,这是特别令人困惑的,例如WebView.PictureListener.html#onNewPicture 。
这通常意味着要么做得更好,要么就是弃用的function有一些不可弥补的缺陷,应该避免。 您通常可以继续使用不推荐使用的方法,但build议您切换到一些新的API(在第一种情况下),或者find其他方式来做你想做的事情(在第二种情况下)。
特别是关于onNewPicture
,整个PictureListener
接口已被弃用。 如果有的话,没有什么迹象可以取代它。 @CommonsWare在这个主题中的评论是值得思考的:
可以想象的是,WebKit的上游变化正在推动弃用,并且对于PictureListener的支持可能在未来版本中完全丧失。
我会用4:
它基本上会告诉你,不鼓励使用这种方法或类。 它们不会100%地保持向后兼容性(他们可以决定在未来版本中不包含这种方法),所以你应该尝试使用方法或类的replace。 这有时不能使用新的方法(例如,如果你想支持运行旧版本的设备)。
其他一些时候,这实际上是可能的。 例如, showDialog
方法现在已被弃用,他们推荐使用DialogFragment
类。 即使在旧版本的Android中,您也可以使用兼容性库来实现这一点。
弃用的方法不保证向后兼容。 他们可能会留在那里再发布几个版本,只是为了让所有人都有机会在开发者移除之前从他们那里迁移出去。 他们被弃用的事实意味着开发人员认为有一个更简单,更快,更整洁,或更好的方式来做任何类或方法。
现在更改代码以使用非弃用的接口可能会更好,因为如果您等待并将其删除,则用户将看到崩溃和错误。
即使他们被弃用,他们也可能编译但不工作。 Google决定在低操作系统级别删除各种function。
例如。 谷歌,在Android 2.3版弃用了许多但不是所有的方法API,允许通话logging。 他们编译好,但不能从Android 2.3以上的function,并转发任何Android手机设备,或具有手机function的平板电脑。
作为已在以后的API级别中删除的弃用接口的示例,请考虑org.apache.http包:它已在API级别22中弃用,并在API级别23中删除 。
当然,在实际的Android设备上,包中包含的类仍然可以在系统库中使用(否则,针对较旧的Android版本的应用程序将不再运行在该设备上)。
但是,它们不能在SDK中使用,因此编译将会失败,除非您将目标/构buildSDK更改为旧版本(或手动包含弃用的类)。
如果Google确实不鼓励使用这些库,他们可以修改实现,以便受影响的类检查正在运行的应用程序的目标API版本,并投诉和/或抛出运行时exception。