oreo - android pie
¿Qué significa "Este método está en desuso" significa para los desarrolladores de aplicaciones (5)
Veo bastantes buenos viejos métodos útiles o incluso clases enteras que están "en desuso y obsoletas".
Pero el código que solía llamar a esos métodos continúa funcionando. Entonces, ¿qué significa esto para mí, como desarrollador de aplicaciones de Android?
- Continúe usando este método todo el tiempo que quiera, ya que los SDK más nuevos siempre serán compatibles con versiones anteriores.
- Funcionará siempre que construya para objetivos más antiguos (por ejemplo, API 8), pero si compilo desde API 14, el compilador se negará a completar la compilación.
- Ambos (1) y (2)
- ¿Otro?
Esto es especialmente confuso cuando no se proporcionan alternativas, como en el caso de WebView.PictureListener.html # onNewPicture .
Como ejemplo de una interfaz obsoleta que se ha eliminado en un nivel de API posterior, considere el paquete org.apache.http: ha quedado obsoleto en el nivel API 22 y se ha eliminado en el nivel API 23 .
Por supuesto, en los dispositivos Android reales, las clases contenidas en ese paquete seguirán estando disponibles en las bibliotecas del sistema (de lo contrario, las aplicaciones que apuntan a una versión anterior de Android ya no se ejecutarían en ese dispositivo).
Sin embargo, ya no están disponibles en el SDK, por lo que la compilación fallará a menos que cambie el SDK de destino / compilación a una versión anterior (o incluya manualmente las clases obsoletas).
Si Google estuviera realmente decidido a desalentar el uso de esas bibliotecas, podría modificar la implementación para que las clases afectadas verifiquen la versión de API de destino de la aplicación en ejecución y se quejen y / o emitan una excepción en tiempo de ejecución.
Incluso cuando están en desuso, pueden compilar pero no funcionar. Google ha decidido eliminar varias funcionalidades en el bajo nivel del sistema operativo.
Caso en punto. Google, en la versión 2.3 de Android, desaprobó muchas API de método, pero no todas, que permitían la grabación de llamadas. Compilan bien pero no funcionan desde Android 2.3 y reenvían en cualquier dispositivo de teléfono Android, o tableta con capacidades de teléfono.
Los métodos obsoletos no se garantiza que permanezcan compatibles con versiones anteriores. Pueden permanecer allí por unos pocos lanzamientos más solo para darles a todos la oportunidad de migrar lejos de ellos antes de que los desarrolladores los eliminen. El hecho de que estén obsoletos significa que los desarrolladores piensan que hay una manera más fácil, rápida, ordenada o, por lo demás, mejor de hacer lo que haga esa clase o método.
Probablemente sea mejor cambiar su código para usar ahora una interfaz que ya no está en desuso, ya que si espera y se elimina, los usuarios verán bloqueos y errores.
Me gustaría ir con 4:
Básicamente le dirá que no se recomienda el uso del método o la clase; NO es 100% que mantendrán la compatibilidad con versiones anteriores (pueden decidir no incluir ese método en versiones futuras), por lo que debe intentar utilizar el reemplazo del método o la clase. A veces, no es posible utilizar los nuevos métodos (por ejemplo, si desea admitir dispositivos que ejecutan versiones anteriores).
Otras veces es posible. Por ejemplo, el método showDialog
ahora está en desuso y recomiendan usar la clase DialogFragment
. Puede lograrlo incluso en versiones anteriores de Android utilizando la biblioteca de compatibilidad .
Por lo general, significa que hay una forma mejor de hacer las cosas o que la funcionalidad en desuso tiene algún defecto irreparable y debe evitarse. Por lo general, puede seguir utilizando los métodos en desuso, pero se le aconseja cambiar a alguna API nueva (en el primer caso) o buscar otra forma de hacer lo que quiera (en el segundo).
Con respecto a onNewPicture
en particular, toda la interfaz de PictureListener
está en desuso. No hay señales de que, en todo caso, se suponga que lo reemplace. Un comentario de @CommonsWare en este hilo es fuente de reflexión:
Es concebible que los cambios ascendentes en WebKit estén impulsando la desaprobación y que el soporte de PictureListener se pierda por completo en futuras versiones.