Firebase Job Dispatcher未从Thread.setDefaultUncaughtExceptionHandler调用

时间:2018-04-02 09:27:12

标签: android jobs job-scheduling android-jobscheduler firebase-job-dispatcher

我正在创建一个Firebase作业调度程序,用于将错误崩溃报告发送到服务器。我的服务不是从调度程序的mustSchedule方法开始的。这可能是因为我开始工作,而不是任何活动。 这是我的代码......

启动服务代码:

 public void scheduleJobForUploadCrashReport(Context context, Bundle serviceBundle) {
    Logs.i(TAG, "scheduleJobForUploadCrashReport");
    FirebaseJobDispatcher dispatcher = new FirebaseJobDispatcher(new GooglePlayDriver(context));
    try {
        Job job = createJobForuploadCrashReport(dispatcher, serviceBundle);
        dispatcher.mustSchedule(job);
        Logs.i(TAG, "dispatcher is scheduled---->");
    } catch (FirebaseJobDispatcher.ScheduleFailedException e) {
        Logs.e(TAG, "FirebaseJobDispatcher.ScheduleFailedException : " + e.getMessage());
        e.printStackTrace();
    }

}

创建工作的代码:

 public Job createJobForuploadCrashReport(FirebaseJobDispatcher dispatcher, Bundle serviceBundle) {
    Logs.i(TAG, "createJobForuploadCrashReport");
    Job job = dispatcher.newJobBuilder()
            .setLifetime(Lifetime.FOREVER)
            .setService(UploadApkCrashReportService.class)
            .setTag(mAppName + mModuleName)
            .setReplaceCurrent(false)
            .setRecurring(false)
            .setTrigger(Trigger.executionWindow(0, 30))
            .setRetryStrategy(RetryStrategy.DEFAULT_LINEAR)
            .setConstraints(Constraint.ON_ANY_NETWORK)
            .setExtras(serviceBundle)
            .build();
    return job;
}

提前致谢。

1 个答案:

答案 0 :(得分:0)

我在同一天发现了问题,但我很忙。我正在将简单服务更改为JobService。问题是将Bundle传递给我的JobService。我正在创建并将崩溃文件发送到服务器时,我的JobService无法完成这么多任务。但是,在应用程序崩溃后,Service无法处理这么多。唯一的区别是Simple Service能够在应用程序崩溃后执行相同的任务。