java - studio - ¿Cuál es la diferencia entre Extiende la aplicación y Extiende la actividad en Android?
pasar de una actividad a otra android con un boton (4)
La aplicación es responsable de toda la aplicación.
agrega actividad lanzador en manifiesto de aplicación
y
en la aplicación en uso de crear para recrear toda la aplicación después de las preferencias del usuario
Estoy confundido en cuanto a la diferencia entre los dos. En mi aplicación, acabo de usar Extiende la actividad y la aplicación funciona perfectamente, ¿cuál es el propósito de la aplicación Extiende?
¿Lo utilizarías en la primera clase que creas en la aplicación de Android?
Gracias.
La clase android.app.Application es una función opcional para extender y almacenar el estado global de la aplicación. Hay otras formas de hacerlo, por lo que la mayoría de las aplicaciones no personalizan esta clase.
Sin embargo, las actividades son lo que define cada etapa importante de su aplicación. No sería posible construir una aplicación sin Actividades. Tendrá una clase de actividad principal y, de hecho, esto se definirá con ''Actividad ampliada''.
La mejor manera de ver la diferencia sería ver su jerarquía de clases.
java.lang.Object
↳ android.content.Context
↳ android.content.ContextWrapper
↳ android.view.ContextThemeWrapper
↳ android.app.Activity
java.lang.Object
↳ android.content.Context
↳ android.content.ContextWrapper
↳ android.app.Application
La aplicación es lo que vive hasta que se mata el proceso de tu aplicación de Android. Puede usar esto para almacenar datos específicos de la aplicación (siempre y cuando su aplicación esté activa) que puedan usarse en diversas actividades. Nota: no estoy diciendo que debas ... Las preferencias compartidas pueden ser otra forma adecuada de ir dependiendo de tu caso de uso. Además, para que quede claro, no puede usar su aplicación para iniciar la aplicación, a diferencia de la actividad del iniciador que proporciona en su archivo de manifiesto.
Puede utilizar su propia clase de aplicación personalizada de la siguiente manera
<application
android:name="icom.osfg.test.app.AppController"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/MyTheme" >
<!-- all the activities goes here -->
</application>
dónde
AppController extends Application
Solo para añadir a las respuestas anteriores.
La clase de Application
será un singleton que vivirá mientras tu aplicación esté viva.
Podría inicializar los componentes globales en su clase extendida de la Application
, ya que durará hasta que el proceso finalice si no quiere manejar el lifecycle Activity
habitual.
Por ejemplo, la inicialización de bibliotecas de terceros como: Parse, CanaryLeak, Crashlytics.
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
Parse.initialize(this);
LeakCanary.install(this);
Fabric.with(this, new Crashlytics());
}
}