android.support.v7.app.AppCompatActivity fue agregado a la última biblioteca de soporte v7 como una nueva característica ayer.
Se dice que ActionBarActivityha quedado en desuso en favor de lo nuevo AppCompatActivityy que AppCompatActivityes una clase base para actividades que utilizan las funciones de la barra de acciones de la biblioteca de soporte. Entonces, ¿cuáles son las nuevas características de AppCompatActivityOver ActionBarActivity? ¿Qué mejoras AppCompatActivitytienen más ActionBarActivity? ¿Y cuáles son las ventajas de AppCompatActivity? ¿Alguien podría suministrar algunas muestras?
Cualquier consejo es apreciado. Y gracias de antemano.
PD: lo que más me sorprendió es que lo AppCompatActivityque se extiende android.support.v4.app.FragmentActivityes la clase directa de padres ActionBarActivity. Quiero decir, en realidad ahora que ActionBarActivitypuede hacer cualquier cosa que AppCompatActivitypueda hacer, ¿por qué Android eliminó lo último?
Mientras tanto, vi una publicación de blog que dice: " No es un cambio de nombre de ActionBarActivitya AppCompatActivity, la lógica interna de AppCompatestá disponible a través deAppCompatDelegate ", entonces, ¿cuál es la " lógica interna " AppCompat? Que puede AppCompatDelegatehacer ¿Alguien podría publicar algunos códigos sobre esto?

Respuestas:
Como Chris escribió, la nueva versión obsoleta de
ActionBarActivity(laAppCompatActivityclase que se extiende ) es una clase de compatibilidad con versiones anteriores segura para usar. Su desaprobación es solo una pista para que solicites usar newAppCompatActivitydirectamente en su lugar.AppCompatActivityes una implementación nueva y más genérica que usaAppCompatDelegateclase internamente.Si comienza un nuevo desarrollo, entonces debería usar una nueva
AppCompatActivityclase de inmediato. Si tiene la oportunidad de actualizar su aplicación, también reemplace en desusoActionBarActivitypor la nueva actividad. De lo contrario, puede permanecer con actividades obsoletas y no habrá ninguna diferencia en el comportamiento.En cuanto a esto
AppCompatDelegate, le permite tener nuevos widgets tintados en una actividad, que no es niAppCompatActivitytampocoActionBarActivity.Por ejemplo, hereda una actividad de una biblioteca externa, que, a su vez, no hereda de
AppCompatActivitypero desea que esta actividad tenga widgets (vistas) de materiales tintados. Para que esto suceda, debe crear una instanciaAppCompatDelegatedentro de su actividad, anular los métodos de esa actividad comoaddContentView(),setContentView()etc. (consulteAppCompatDelegatejavadoc para obtener la lista completa de métodos), y dentro de esos métodos anulados, reenviar las llamadas a laAppCompatDelegateinstancia interna .AppCompatDelegatehará el resto y su actividad "antigua" se "materializará".fuente
Es principalmente un cambio de nombre: en
ActionBarActivityrealidad no describe todo lo que hace ahora. Puede usarlo con seguridadActionBarActivitysi lo desea. Piense en ello como un enlace simbólico.fuente
AppCompatActivityes la clase principal directa deActionBarActivity, ahora queActionBarActivitypuede hacer cualquier cosa queAppCompatActivitypueda hacer, ¿por quéAndroidrechazar la posterior?ActionBarActivitycuando se descarta de la biblioteca de soporte (por ejemplo, al actualizar su aplicación), recomendaría evitar usarla de ahora en adelante.http://android-developers.blogspot.it/2015/04/android-support-library-221.html
fuente
AppCompatActivityse introdujo en Android-SDK desde el lanzamiento de la biblioteca de compatibilidad de aplicaciones de Android .AppCompatActivityes la clase secundaria directaFragmentActivityde soporte v4 y la clase primaria directa deActionBarActivity.AppCompatActivityes la clase base para actividades que utilizan las funciones de la barra de acción de la biblioteca de soporte .Puede agregar un elemento
ActionBara su actividad cuando se ejecuta en el nivel de API 7 o superior extendiendo esta clase para su actividad y configurando el tema de la actividad en Theme.AppCompat o un tema similar.En cuanto a la biblioteca de compatibilidad de aplicaciones v7, agrega compatibilidad con el patrón de diseño de la interfaz de usuario de la Barra de acciones . Esta biblioteca incluye soporte para implementaciones de interfaz de usuario de diseño de materiales .
Estas son algunas de las clases clave incluidas en la biblioteca v7 appcompat:
ActionBar- Proporciona una implementación del patrón de interfaz de usuario de la barra de acción.AppCompatActivity- Agrega una clase de actividad de aplicación que se puede usar como clase base para actividades que usan la implementación de la barra de acción de la Biblioteca de soporte .AppCompatDialog- Agrega una clase de diálogo que se puede usar como clase base para los diálogos temáticos de AppCompat .ShareActionProvider- Agrega soporte para una acción de compartir estandarizada (como correo electrónico o publicación en aplicaciones sociales) que se puede incluir en una barra de acción.Después de descargar las Bibliotecas de soporte de Android , esta biblioteca se encuentra en el directorio / extras / android / support / v7 / appcompat / .
fuente
android.support.v4.app.ActivityCompat? ¿Es este el antiguo nombre deAppCompatActivity?Anteriormente, el único punto de entrada
AppCompatera a través de laActionBarActivityclase ahora en desuso . Desafortunadamente, esto te obligó a usar una jerarquía de actividad establecida que hizo cosas como usarPreferenceActivityfueran imposibles.Para más información, consulte las bibliotecas de soporte de Chris Banes v22-1-0
fuente
La última versión de la biblioteca de soporte de Android, 22.1, desaprueba la versión
ActionBarActivitya favor deAppCompatActivity, que promete traer una única coherenteActionBarpara todos los dispositivos que comiencen con API Nivel 7 y superiorfuente