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 0d9956bd..4c0fb0dc 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 @@ -317,6 +317,26 @@ public void onMethodCall(@NonNull MethodCall call, @NonNull MethodChannel.Result } return; } + + if(method.equalsIgnoreCase("openApp")){ + try{ + String packageName= getPackageName(); + Intent launchIntent= getPackageManager().getLaunchIntentForPackage(packageName); + if (launchIntent != null) { + launchIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + launchIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); + + startActivity(launchIntent); + result.success(true); + + } + }catch (Exception e){ + result.error("open app failure", e.getMessage(),e); + + } + return; + + } } catch (JSONException e) { Log.e(TAG, e.getMessage()); e.printStackTrace(); 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 b6e37032..11e47a92 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 @@ -222,4 +222,9 @@ class AndroidServiceInstance extends ServiceInstance { "value": value, }); } + + Future openApp() async { + final result = await _channel.invokeMethod('openApp'); + return result ?? false; + } }