pvsvamsi / SystemAlertWindow

A flutter plugin to show Truecaller like overlay window, over all other apps along with callback events. In Android Go or Android 11 & above, this plugin shows notification bubble, in other android versions, it shows an overlay window.
Apache License 2.0
110 stars 63 forks source link

Memory Leak (Thread) does not dispose. #129

Open ScorpiosCrux opened 3 months ago

ScorpiosCrux commented 3 months ago

Describe the bug Whenever I put the overlay in the background, a new thread/isolate is created but never disposed.

image

This started happening when I started using:

@pragma("vm:entry-point")
void overlayMain() {
  // Ensure's that the Flutter engine is initialized before any dart calls.
  WidgetsFlutterBinding.ensureInitialized();

  runApp(const MaterialApp(
    debugShowCheckedModeBanner: false,
    home: SystemOverlayWidget(),
  ));
}

To Reproduce Click the circle button to put the app into the background (with circle button), and then reopen the app without closing it (swiping up from square button)

Expected behavior The overlay thread should be shutdown when the following is called

await SystemAlertWindow.closeSystemWindow(
    prefMode: SystemWindowPrefMode.OVERLAY,
);

Versions (please complete the following information):

Let me know if you need more information.

MalathSam1994 commented 1 month ago

I have the same problem:

E/flutter (12162): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: MissingPluginException(No implementation found for method removeCallBackHandler on channel in.jvapps.system_alert_window) E/flutter (12162): #0 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:332:7) E/flutter (12162): E/flutter (12162): #1 SystemAlertWindow.removeOnClickListener (package:system_alert_window/system_alert_window.dart:50:12)

Did you made it solving this?

iQ-ashish commented 3 weeks ago

@ScorpiosCrux have you used overlay window to go on app if yes then let me know as i wnat to add the same feature but its not routing to app.