diff --git a/android/src/main/java/com/onesignal/flutter/OneSignalNotifications.java b/android/src/main/java/com/onesignal/flutter/OneSignalNotifications.java index e2b094a6..c48a77a9 100644 --- a/android/src/main/java/com/onesignal/flutter/OneSignalNotifications.java +++ b/android/src/main/java/com/onesignal/flutter/OneSignalNotifications.java @@ -227,6 +227,12 @@ public void onNotificationPermissionChange(boolean permission) { invokeMethodOnUiThread("OneSignal#onNotificationPermissionDidChange", hash); } + void onDetachedFromEngine() { + // Unsubscribe so clicks while the engine is dead get queued by the native SDK + // instead of dispatched on a detached channel. + OneSignal.getNotifications().removeClickListener(this); + } + private void lifecycleInit(Result result) { OneSignal.getNotifications().removeForegroundLifecycleListener(this); OneSignal.getNotifications().addForegroundLifecycleListener(this); diff --git a/android/src/main/java/com/onesignal/flutter/OneSignalPlugin.java b/android/src/main/java/com/onesignal/flutter/OneSignalPlugin.java index 7aa11bf2..5592d437 100644 --- a/android/src/main/java/com/onesignal/flutter/OneSignalPlugin.java +++ b/android/src/main/java/com/onesignal/flutter/OneSignalPlugin.java @@ -48,7 +48,9 @@ public void onDetachedFromEngine(@NonNull FlutterPlugin.FlutterPluginBinding bin onDetachedFromEngine(); } - private void onDetachedFromEngine() {} + private void onDetachedFromEngine() { + OneSignalNotifications.getSharedInstance().onDetachedFromEngine(); + } @Override public void onAttachedToActivity(@NonNull ActivityPluginBinding binding) {