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.

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?

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.

  • Las referencias estáticas se borran - Android descarga clases en tiempo de ejecución si no se utiliza?
  • ¿Cuándo / por qué se destruye mi instancia de singleton de Java?
  • Ampliación de la clase de aplicación y buenas prácticas
  • Singleton objeto está recreando
  • SQLite incapaz de abrir el archivo de base de datos (código 14) en la consulta "SELECT" frecuente
  • Android: ¿Cómo acceder a una sola base de datos de múltiples actividades en la aplicación?
  • ¿Qué hace este método privado en esta clase singleton Java?
  • ¿Android pasa información persistente en paquetes o usa un patrón singleton?
  • Cómo separar la actividad principal y el selector de fechas con las propias clases
  • Singletons no disponibles cuando la aplicación vuelve a la memoria
  • Métodos estáticos o Singletons rendimiento-sabio (Android)?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.