Qué significa "Este método está obsoleto" significa para los desarrolladores de aplicaciones

Veo bastantes buenos viejos métodos útiles o incluso las clases enteras que son "desaprobadas y obsoletas".

Pero el código que se utiliza para llamar a esos métodos sigue funcionando. Entonces, ¿qué significa esto para mí, como desarrollador de aplicaciones para Android?

  1. Continúe usando este método siempre y cuando quiera, porque los nuevos SDKs siempre seguirán siendo compatibles con versiones anteriores.
  2. Funcionará mientras construya para objetivos antiguos (por ejemplo, API 8), pero si construyo desde la API 14, el compilador se negará a completar la compilación.
  3. Tanto (1) como (2)
  4. ¿Otro?

Esto es especialmente confuso cuando no se proporcionan alternativas, como en el caso de WebView.PictureListener.html # onNewPicture .

Por lo general, significa que hay una mejor manera de hacer las cosas o que la funcionalidad obsoleta tenía algunos defectos irreparables y debe evitarse. Normalmente, puede seguir utilizando métodos obsoletos, pero se recomienda cambiar a alguna nueva API (en el primer caso) o buscar otra forma de hacer lo que desea (en la segunda).

Respecto a onNewPicture en particular, toda la interfaz de PictureListener está obsoleta. No hay signos de lo que, si es que se supone, se supone que lo reemplace. Un comentario de @CommonsWare en este hilo es un alimento para el pensamiento:

Es concebible que los cambios ascendentes en WebKit estén impulsando la depreciación y que la compatibilidad con PictureListener se pierda totalmente en alguna versión futura.

Me gustaría ir con 4:

Básicamente le dirá que el uso del método o de la clase es desalentado; No es 100% que mantendrán la compatibilidad con versiones anteriores (pueden decidir no incluir ese método en versiones futuras), por lo que debería intentar utilizar la sustitución del método o clase. Esto a veces no es posible usar los nuevos métodos (por ejemplo, si desea soportar dispositivos que ejecuten versiones anteriores).

Otras veces es realmente posible. Por ejemplo, el método showDialog ahora está obsoleto y se recomienda utilizar la clase DialogFragment . Puede lograrlo incluso en versiones anteriores de Android mediante la biblioteca de compatibilidad .

No se garantiza que los métodos obsoletos permanezcan compatibles con versiones anteriores. Podrían permanecer allí por unos pocos lanzamientos más para dar 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, más rápida, más limpia o mejor para hacer lo que esa clase o método hace.

Probablemente es mejor cambiar tu código para usar una interfaz no obsoleta ahora, ya que si esperas y se quita, tus usuarios verán fallos y errores.

Incluso cuando están obsoletos, pueden compilar pero no funcionar. Google ha decidido eliminar varias funcionalidades a bajo nivel de sistema operativo.

Caso en punto. Google, en la versión 2.3 de Android liberó muchos pero no todos los API de métodos que permitían la grabación de llamadas. Compilan OK, pero no funcionan desde Android 2.3 y avanzar en cualquier dispositivo de teléfono Android, o tableta con capacidades de teléfono.

Como ejemplo de una interfaz obsoleta que se ha eliminado en un nivel posterior de la API, considere el paquete org.apache.http: Se ha desaprobado en el nivel 22 de la API y se ha eliminado en el nivel 23 de la API .

Por supuesto, en los dispositivos Android actuales, las clases contenidas en ese paquete seguirán estando disponibles en las bibliotecas del sistema (de lo contrario, las aplicaciones orientadas a una versión anterior de Android ya no se ejecutarían en ese dispositivo).

Sin embargo, no están disponibles en el SDK, por lo que la compilación fallará a menos que cambie el SDK de destino / generación a una versión anterior (o incluya manualmente las clases obsoletas).

Si Google estaba realmente decidido a desalentar el uso de esas bibliotecas, podría modificar la implementación para que las clases afectadas comprueben la versión de la API de destino de la aplicación en ejecución y se quejan y lanzan una excepción de tiempo de ejecución.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.