Android Crittercism init tanto en la aplicación como en la actividad
¿Es seguro (o recomendado) llamar Crittercism.init(getApplicationContext(), id);
tanto en el onCreate de una aplicación de aplicación y la actividad principal?
Las instrucciones oficiales para la configuración de Crittercism dicen que lo llaman en la actividad principal y no mencionan la aplicación en absoluto.
- Acceso al objeto GoogleApiClient en Todas las actividades
- Los datos estáticos guardados dentro de singleton son nulos a veces cuando se vuelve a la aplicación desde el fondo
- Android: No se puede realizar esta operación porque se ha cerrado el grupo de conexiones
- Problemas con singleton en android
- El servicio de Android no funciona como singleton
Esto parece tener el efecto secundario de ignorar cualquier accidente que suceda en el método onCreate de la aplicación de aplicación (efectivamente un singleton). Las excepciones sólo se informan si init se llama en onCreate de la implementación de la aplicación.
¿Así que está bien para llamar a init en ambos, o debería ser sólo la aplicación, o simplemente la actividad?
- Métodos estáticos o singleton, ¿cuál elegir?
- Objetos de comunicación entre fragmentos múltiples en ViewPager
- Actividad de Android singleton
- Uso del patrón de diseño Singleton para SQLiteDatabase
- ¿Por qué la clase singleton sobrevive a la actividad?
- Singletons vs. Contexto de la aplicación en Android?
- La forma más segura de usar SharedPreferences
- Singleton se destruye
Es seguro inicializar la biblioteca Crittercism en ambos lugares, pero no es realmente necesario. Esto es porque después de la primera inicialización, cualquier inicialización posterior será detectada e ignorada.
Eso te deja con la opción de inicializar en cualquier lugar. Aunque la mayoría de la gente elige hacerlo en el nivel de actividad, iniciar Crittercism en la clase Application funciona.
No importa dónde inicialice la librería, los bloqueos y otra información se deben informar de todas sus actividades.
Aparte de eso, si init Crittercism en un nivel de actividad, cualquier bloqueo en los proveedores de contenido que ejecutan de forma independiente o no se denuncian o, si utiliza Crittercism allí para, por ejemplo, dejar migas de pan, bloquea el contentprovider con la siguiente excepción:
Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() at android.os.Handler.<init>(Handler.java:121) at crittercism.android.f$5.<init>(Unknown Source) at crittercism.android.f.<init>(Unknown Source) at com.crittercism.app.Crittercism.<clinit>(Unknown Source)
Por lo tanto, inicializar Crittercism siempre en la clase Application.onCreate para evitarlos.
- Obtener todos los elementos alrededor de un determinado punto de la base de datos SQLite
- Cómo calcular los Cordinados de punto final en un Arco si el centro y las coordenadas de inicio son Conocidos junto con el ángulo de barrido en Android ..?