こんにちはGuysは、私はフラリーサーバーにデータを送信するためにタイマーを持つクラスを構築します。それは私のすべての問題を解決しました。
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;
}
}
私は(時々、常にではないが、ほとんどの時間は、それがイベントを失い、このバージョンでは、イベントをログに記録します)Flurry_3.2.2で同じ問題を抱えていたとFlurry_3.3.0で今それを持っています。 プロジェクトFlurry_3.2.1とFlurry_3.2.0ではうまく動作します。 – kinORnirvana
私は3.3.1がイベントをログに記録せず、代わりに3.2.1を使用しなければならないことも発見しました。 – Ryan