Rutina registra sesiones pero no eventos (android)
Estoy utilizando FLurry_3.2.2.jar
, y tengo código como este en cada Activity
. Registra correctamente todas las sesiones, pero no registra eventos. (En realidad, registró un evento, una vez, de mi actividad en el Home
)
@Override protected void onStart() { super.onStart(); FlurryAgent.onStartSession(this, Utilities.FlurryKey); FlurryAgent.logEvent("Home"); } @Override protected void onStop() { super.onStop(); FlurryAgent.onEndSession(this); }
Tu código parece correcto. En estos casos, creo que la causa más probable es que sus sesiones completas no se envían a los servidores de Flurry. Es posible que obtenga el informe de la sesión inicial, pero la sesión se cierra al final del ciclo de vida de las aplicaciones y sólo en ese momento se envían los sucesos al servidor.
onStartSession
asegurarse de que onStartSession
y onEndSession
se llaman en cada actividad. Si se pierden en alguna actividad (especialmente onEndSession), es posible que su sesión no se cierre y los eventos no se puedan enviar.
Los eventos se envían al final de la sesión, cuando todas las actividades se han detenido. Debe cerciorarse de finalizar completamente la aplicación en el dispositivo de prueba antes de que pueda esperar que los eventos lleguen al servidor. Si no lo ha hecho, es posible que los datos del evento sigan estando en su dispositivo sin haber sido enviados.
El Flurry SDK también genera registros que pueden ayudar a reducir el problema. Puede habilitar el registro con FlurryAgent.setLogEnabled(true)
y FlurryAgent.setLogLevel(Log.DEBUG)
.
Si tiene más preguntas, comuníquese con [email protected].
Descargo de responsabilidad: Trabajo en la ráfaga 🙂
Hola chicos Construyo clases con temporizador para enviar datos al Servidor Flurry. Ha resuelto todos mis problemas.
public class TimerFlurry { private static final String TAG = "TIMER FLURRY"; private Handler handler = new Handler(); private Runnable runnable = null; private boolean stop = false; public TimerFlurry(final Context ctx) { Log.d(TAG, "TimerFlurry.TimerFlurry()"); runnable = new Runnable() { boolean inicializou = false; @Override public void run() { if (stop) { Log.d(TAG, "parou Handler!!!"); FlurryAgent.onEndSession(ctx); inicializou = false; return; } Log.d(TAG, "!!!!!!!!!!!!!!!!!!! .run() now: " + new Date()); if (!inicializou) { Log.d(TAG, ">>>>> inicializou Flurry Session!!!"); FlurryAgent.setContinueSessionMillis(5000); FlurryAgent.onStartSession(ctx, "XXXXXXXXXXXXXXXXXXXX"); FlurryAgent.setLogEnabled(true); FlurryAgent.setLogLevel(Log.DEBUG); inicializou = true; handler.postDelayed(runnable, 60000); } else { Log.d(TAG, "!!!!!!!!!!!!! finalizou Flurry Session!!!"); FlurryAgent.onEndSession(ctx); inicializou = false; handler.postDelayed(runnable, 10000);// inicializa em 10 s // novamente para // dar o timeout do // flurry } } }; handler.postDelayed(runnable, 5000); } public void stop() { stop = true; } }