setBackgroundCallback method

  1. @override
void setBackgroundCallback(
  1. SimpleNativeTimerBackgroundCallback callback
)
override

Implementation

@override
void setBackgroundCallback(SimpleNativeTimerBackgroundCallback callback) {
  _backgroundCallback = callback;
  final BinaryMessenger messenger = _resolveBinaryMessenger();
  messenger.setMessageHandler('simple_native_timer/background', (
    ByteData? message,
  ) async {
    if (_backgroundCallback == null || message == null) {
      return null;
    }
    final codec = const StandardMethodCodec();
    final MethodCall call = codec.decodeMethodCall(message);
    if (call.method == 'onTick') {
      final args = call.arguments as Map<dynamic, dynamic>?;
      await _backgroundCallback!.call(
        args?.map((key, value) => MapEntry(key.toString(), value)) ??
            <String, dynamic>{},
      );
    }
    return codec.encodeSuccessEnvelope(null);
  });
}