我正在尝试在我的自定义未捕获异常处理程序(UEH)中使用Flurry的onEvent方法,但事件没有显示出来,我认为这可能是因为当它到达异常处理程序时会议结束了。
我在每个活动的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中开始一个新的?我见过其他人说他们已经成功实施了这个解决方案,所以我知道这是可能的,但我似乎无法得到它。
谢谢!
答案 0 :(得分:1)
我最终使用应用程序上下文在我的UEH中启动了一个新的flurry会话。现在正在发送和记录事件,这使得用户体验的调试问题变得更加容易。