Restrict a Windows app to only be able to open one instance at a time.
- Add
WidgetsFlutterBinding.ensureInitialized();to the start of your appsmainfunction. - Add the
asyncmodifier to your appsmainfunction. - Add a call to
WindowsSingleInstance.ensureSingleInstance(), passing the apps startup args, a custom app string unique to your app (a-z, 0-9, _ and - only), and an optional callback function.
void main(List<String> args) async { WidgetsFlutterBinding.ensureInitialized(); await WindowsSingleInstance.ensureSingleInstance( args, "custom_identifier", onSecondWindow: (args) { print(args); }); runApp(const MyApp()); }