代码之家  ›  专栏  ›  技术社区  ›  Rounak Lahoti

Firebase作业调度程序未从线程调用。setDefaultUncaughtExceptionHandler

  •  0
  • Rounak Lahoti  · 技术社区  · 7 年前

    我正在创建一个Firebase作业调度程序,用于向服务器发送错误崩溃报告。我的服务不是以dispatcher的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 回复  |  直到 7 年前
        1
  •  0
  •   Rounak Lahoti    7 年前

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