2012-09-06 4 views
5

Quiero integrar análisis de ráfagas en mi aplicación de Android, parece realmente simple. Pero no estoy familiarizado con la ráfaga y cómo funciona.Análisis de ráfagas en cada actividad?

¿Debo agregar el código:

public void onStart() 
{ 
super.onStart(); 
FlurryAgent.onStartSession(sample, “APIXXXXXXXXXXXX”); 

} 

en cada actividad?

Mi aplicación utiliza una gran cantidad de actividades y que no les importa para el seguimiento que se utiliza de las actividades, sólo el número de instalaciones, sesiones y duración de la sesión. Pero, ¿la longitud de la sesión está disponible si el código ráfaga solo se agrega en la actividad de inicio?

Sé que la mayoría de la información que quiero está disponible en la tienda juego ya, pero quiero probar esto para tener una visión general de las aplicaciones en diferentes plataformas.

Respuesta

16

Aquí está una gran respuesta: https://stackoverflow.com/a/8062568/1635817

le sugiero que para crear un "BaseActivity" y decir a todos sus actividades de extenderlo por lo que no tiene que copiar/pegar esas líneas en cada clase de actividad.

Algo como esto:

public class BaseActivity extends Activity 
{ 
    public void onStart() 
    { 
     super.onStart(); 
     FlurryAgent.onStartSession(this, "YOUR_KEY"); 
     // your code 
    } 

    public void onStop() 
    { 
     super.onStop(); 
     FlurryAgent.onEndSession(this); 
     // your code 
    } 
} 

En respuesta a @conor comentario:

De Flurry's documentation

Siempre que hay algún contexto que ha llamado onStartSession (Contexto, Cadena) pero no onEndSession (Contexto), la sesión continuará. Además, si un nuevo contexto llama al onStartSession (Context, String) dentro de los 10 segundos (la sesión predeterminada timeout length) del último Contexto que llama a onEndSession, se reanudará la sesión , en lugar de crearse una nueva sesión. La longitud de la sesión, la frecuencia de uso, los eventos y los errores continuarán siendo seguidos como parte de la misma sesión. Esto garantiza que cuando un usuario pasa de una actividad a otra en su aplicación, no tendrá una sesión separada rastreada para cada actividad, sino que tendrá una sesión única de que abarca muchas actividades.

+0

eso es exactamente lo Lo usé;) – Kostas

+0

¡genial! Nunca usé una baseActivity, ¡es realmente útil para más cosas! – Jasper

+1

¿Este código no tendría el efecto de crear múltiples sesiones de Flurry por cada sesión de uso único real? – conor

4

Respuesta de florianmski tiene sentido, pero hay algunos problemas cuando tiene que usar diferentes tipos de actividades en su aplicación como FragmentActivity, TabActivity, ListActivity, etc. En este caso, no puede extender todas sus actividades desde BaseActivity única. Personalmente yo preferiría poner llamadas de onStartSession y onEndSession en onStart y OnStop métodos de cada actividad, pero antes de ellos envuelva en alguna clase, por ejemplo:

public class Analytics { 
    public static void startSession(Context context) { 
     FlurryAgent.onStartSession(context, Config.FLURRY_KEY); 
     // here could be some other analytics calls (google analytics, etc) 
    } 
    public static void stopSession(Context context) { 
     FlurryAgent.onEndSession(context); 
     // other analytics calls 
    } 
} 

Dentro de cada actividad:

public void onStart() { 
    super.onStart(); 
    Analytics.startSession(this); 
} 

public void onStop() { 
    super.onStop() 
    Analytics.stopSession(this); 
} 
+1

Este es definitivamente el camino a seguir, además es un gran punto de entrada para iniciar sesión, etc. –

+0

Me gusta esta forma de usar, pero he cambiado el código del método stopSession (Context context) con FlurryAgent.onEndSession (context); –

Cuestiones relacionadas