init static method

Future<void> init(
  1. QAPMBuilder builder,
  2. AppRunner? appRunner, {
  3. BeforeInitRunner? beforeInitRunner,
})

Implementation

static Future<void> init(QAPMBuilder builder, AppRunner? appRunner, {BeforeInitRunner? beforeInitRunner}) async {
  SDKConfig.builder = builder;
  final initTasks = _createInitTasks(builder, beforeInitRunner);

  runInitTasks() async {
    try {
      for (final task in initTasks) {
        await task.run();
      }
    } catch (e) {
      Logger.error(tag, '_runInitTask error: $e');
    }
    if (appRunner != null) {
      await appRunner();
    }
  }
  // appRunner不为空,且当前要开启的功能有异常监控的话
  if (appRunner != null && builder.funcSwitch & MODE_CRASH > 0) {
    RunZonedGuardedTask runZonedGuardedTask = RunZonedGuardedTask(builder, runInitTasks);
    await runZonedGuardedTask.run();
    // todo 这里是老方式来获取,但可能得先记录,等初始化后再上报
  } else {
    await runInitTasks();
  }
}