diff --git a/packages/flutter_background_service_android/lib/flutter_background_service_android.dart b/packages/flutter_background_service_android/lib/flutter_background_service_android.dart index 7c8e865..b6e3703 100644 --- a/packages/flutter_background_service_android/lib/flutter_background_service_android.dart +++ b/packages/flutter_background_service_android/lib/flutter_background_service_android.dart @@ -7,9 +7,13 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_background_service_platform_interface/flutter_background_service_platform_interface.dart'; +bool _isMainIsolate = true; + @pragma('vm:entry-point') Future entrypoint(List args) async { WidgetsFlutterBinding.ensureInitialized(); + _isMainIsolate = false; + final service = AndroidServiceInstance._(); final int handle = int.parse(args.first); final callbackHandle = CallbackHandle.fromRawHandle(handle); @@ -29,7 +33,16 @@ class FlutterBackgroundServiceAndroid extends FlutterBackgroundServicePlatform { FlutterBackgroundServiceAndroid._(); static final FlutterBackgroundServiceAndroid _instance = FlutterBackgroundServiceAndroid._(); - factory FlutterBackgroundServiceAndroid() => _instance; + + factory FlutterBackgroundServiceAndroid() { + if (!_isMainIsolate) { + throw Exception( + "This class should only be used in the main isolate (UI App)", + ); + } + + return _instance; + } Future _handleMethodCall(MethodCall call) async { debugPrint(call.method);