From 7909b51cafbf6e79ad0f875e73889ad1b2b5fc34 Mon Sep 17 00:00:00 2001 From: luisfelipeas5 Date: Fri, 10 Nov 2023 10:00:16 -0300 Subject: [PATCH 1/2] fix: removes listener before turn methodChannel null --- .../flutter/flutter_background_service/BackgroundService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/flutter_background_service_android/android/src/main/java/id/flutter/flutter_background_service/BackgroundService.java b/packages/flutter_background_service_android/android/src/main/java/id/flutter/flutter_background_service/BackgroundService.java index 69dc6a17..881d15ec 100644 --- a/packages/flutter_background_service_android/android/src/main/java/id/flutter/flutter_background_service/BackgroundService.java +++ b/packages/flutter_background_service_android/android/src/main/java/id/flutter/flutter_background_service/BackgroundService.java @@ -122,9 +122,9 @@ public void onDestroy() { backgroundEngine = null; } + FlutterBackgroundServicePlugin.servicePipe.removeListener(listener); methodChannel = null; dartEntrypoint = null; - FlutterBackgroundServicePlugin.servicePipe.removeListener(listener); super.onDestroy(); } From cd0d098f76fb9e211ab5db1a08f19cfd21827b30 Mon Sep 17 00:00:00 2001 From: luisfelipeas5 Date: Fri, 10 Nov 2023 10:01:20 -0300 Subject: [PATCH 2/2] fix: checks methodChanel's nullabilty inside MainHandler.post --- .../BackgroundService.java | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/packages/flutter_background_service_android/android/src/main/java/id/flutter/flutter_background_service/BackgroundService.java b/packages/flutter_background_service_android/android/src/main/java/id/flutter/flutter_background_service/BackgroundService.java index 881d15ec..2f8e4b12 100644 --- a/packages/flutter_background_service_android/android/src/main/java/id/flutter/flutter_background_service/BackgroundService.java +++ b/packages/flutter_background_service_android/android/src/main/java/id/flutter/flutter_background_service/BackgroundService.java @@ -235,18 +235,15 @@ private void runService() { } public void receiveData(JSONObject data) { - if (methodChannel != null) { - try { - final JSONObject arg = data; - mainHandler.post(new Runnable() { - @Override - public void run() { - methodChannel.invokeMethod("onReceiveData", arg); - } - }); - } catch (Exception e) { - e.printStackTrace(); - } + if (methodChannel == null) return; + try { + final JSONObject arg = data; + mainHandler.post(() -> { + if (methodChannel == null) return; + methodChannel.invokeMethod("onReceiveData", arg); + }); + } catch (Exception e) { + e.printStackTrace(); } }