fluttercommunity / flutter_workmanager

A Flutter plugin which allows you to execute code in the background on Android and iOS.
825 stars 247 forks source link

Why need to check type of input data #542

Open deverlex opened 4 months ago

deverlex commented 4 months ago
if (inputData != null) {
      for (final entry in inputData.entries) {
        final key = entry.key;
        final value = entry.value;
        if (!(value is int ||
            value is bool ||
            value is double ||
            value is String ||
            value is List<int> ||
            value is List<bool> ||
            value is List<double> ||
            value is List<String>)) {
          throw Exception(
              "argument $key has wrong type. WorkManager supports only int, bool, double, String and their list");
        }
      }
    }

I want to send dynamic object to inputData. It has an error because you check datatype of input data

Prince2347X commented 3 months ago

It is because the native android workmanager support only primitive datatypes or their array variants as input. Therefore, you can't pass your custom objects as input. Ref: https://developer.android.com/develop/background-work/background-tasks/persistent/getting-started/define-work#input_output Ref: https://developer.android.com/reference/androidx/work/Data

deverlex commented 3 months ago

It is because the native android workmanager support only primitive datatypes or their array variants as input. Therefore, you can't pass your custom objects as input. Ref: https://developer.android.com/develop/background-work/background-tasks/persistent/getting-started/define-work#input_output Ref: https://developer.android.com/reference/androidx/work/Data

thank you. I think the native android need change for dynamic