1

カスタムのキャッチされていない例外ハンドラー (UEH) で Flurry の onEvent メソッドを使用しようとしていますが、イベントが表示されません。例外ハンドラーに到達するまでに、Flurry セッションが終了したためではないかと考えています。 .

すべてのアクティビティの onStart() メソッドで FlurryAgent.onStartSession を呼び出し、すべてのアクティビティの onStop() メソッドで FlurryAgent.onEndSession() を呼び出します。

最初のアクティビティで UEH を設定しています。

Thread.setDefaultUncaughtExceptionHandler(new TopExceptionHandler(this));

私のUEH(簡略化)は次のようになります。

public class TopExceptionHandler implements UncaughtExceptionHandler {

    private Thread.UncaughtExceptionHandler defaultUEH;
    private Activity app = null;
    public int numberOfStories = -1;

    public TopExceptionHandler(Activity app) {
        this.defaultUEH = Thread.getDefaultUncaughtExceptionHandler();
        this.app = app;
    }

    @Override
    public void uncaughtException(Thread t, Throwable e) {

        Map<String, String> params = new HashMap<String, String>();
        ExceptionHandlerValues values = ExceptionHandlerValues.getExceptionHandlerValues();
        params.put("model", values.model);
        params.put("androidVersion", values.androidVersion);
        params.put("androidSDK", values.androidSDK);
        params.put("wattpadVersion", values.wattpadVersion);
        params.put("misc", "StoryCount=" + values.storyCount + ";");
        params.put("class", e.getClass().toString());

        // Send it off to Flurry as an event
        FlurryAgent.onEvent(ExceptionHandlerValues.EVENT_ID, params);

        defaultUEH.uncaughtException(t, e);
    }
}

慌ただしいセッションが終了した場合 (終了したと思います)、UEH で新しいセッションを開始するにはどうすればよいですか? 他の人がこのソリューションの実装に成功したと言っているのを見たことがあるので、それが可能であることは知っていますが、私はそれを理解できないようです.

ありがとう!

4

1 に答える 1

1

アプリケーション コンテキストを使用して、UEH で新しい慌ただしいセッションを開始することになりました。イベントが送信され、記録されるようになったため、ユーザーが経験している問題のデバッグがはるかに簡単になります。

于 2011-09-12T14:51:39.663 に答える