2013-09-05 1 views
5

Я использую FLurry_3.2.2.jar, и у вас есть такой код в каждом Activity. Он корректно регистрирует все сеансы, но не регистрирует события. (На самом деле, он вошел один событие, один раз, с моей Home деятельности)сеансы бурильных журналов, но не события (android)

@Override 
protected void onStart() 
{ 
    super.onStart(); 
    FlurryAgent.onStartSession(this, Utilities.FlurryKey); 
    FlurryAgent.logEvent("Home"); 
} 
@Override 
protected void onStop() 
{ 
    super.onStop(); 
    FlurryAgent.onEndSession(this); 
} 
+2

У меня был тот же вопрос о Flurry_3.2.2, и я с этим теперь с Flurry_3.3.0 (эта версия регистрирует события иногда, но не всегда, большую часть времени она теряет события). В нашем проекте Flurry_3.2.1 и Flurry_3.2.0 работают только отлично. – kinORnirvana

+0

Я также обнаружил, что 3.3.1 не регистрирует события и вместо этого должен был использовать 3.2.1. – Ryan

ответ

8

Ваш код выглядит правильно. В этих случаях я считаю, что наиболее вероятная причина заключается в том, что ваши полные сеансы не отправляются на серверы Flurry. Вы можете получить отчет о начальном сеансе, но сеанс закрыт в конце жизненного цикла приложений, и только в этот момент события также отправляются на сервер.

Вы должны убедиться, что на каждое действие вызывается onStartSession и onEndSession. Если они упускаются из-за какой-либо активности (особенно в случае с Интернетом), ваша сессия может не закрываться и события могут не отправляться.

События отправляются в конце сеанса, когда все действия прекратились. Вы должны убедиться, что полностью завершите свое приложение на своем тестовом устройстве, прежде чем вы сможете ожидать, что какие-либо события придут на сервер. Если вы этого еще не сделали, данные события могут оставаться на вашем устройстве без отправки.

Flurry SDK также выводит журналы, которые могут помочь в сужении проблемы. Вы можете включить ведение журнала с помощью FlurryAgent.setLogEnabled(true) и FlurryAgent.setLogLevel(Log.DEBUG).

Не стесняйтесь обращаться к [email protected], если у вас есть дополнительные вопросы.

Отказ от ответственности: Я работаю в волнении :)

+0

Я дважды проверю вещи. У меня есть чувство, связанное с жизненным циклом моей деятельности. В некоторых случаях я использую флаг Intent.FLAG_ACTIVITY_CLEAR_TOP, чтобы вернуться к моей активности запуска, которая блокирует любые действия, находящиеся между ними в стеке. – Matt

+0

Что отличает setLogEvents (boolean) и setLogEnabled (boolean). Я немного запутался в них. –

+2

setLogEnabled (boolean) предназначен для ведения журналов в LogCat, который включен только для целей отладки. setLogEvents (boolean) позволяет использовать методы logEvent, так что вы можете отправлять данные на шлейф-серверы. Это верно по умолчанию, и обычно нет причин его отключать (если вам не нужно быстро отключать ведение журнала событий Flurry для целей тестирования) –

1

Привет ребята я построить класс с таймером для отправки данных на сервер Flurry. Все мои проблемы решены.

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; 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^