From 4c510271896e851d824148b53c6c18d75424db63 Mon Sep 17 00:00:00 2001 From: BlueMatthew Date: Fri, 12 Jan 2024 11:47:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E4=BF=AE=E6=94=B9=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E5=90=8E=E9=87=8D=E5=90=AFAPP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xypower/common/MicroPhotoContext.java | 31 ++++++++++++++++--- .../java/com/xypower/mpmaster/AppMaster.java | 5 +++ 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/common/src/main/java/com/xypower/common/MicroPhotoContext.java b/common/src/main/java/com/xypower/common/MicroPhotoContext.java index 0997e004..8e8c9735 100644 --- a/common/src/main/java/com/xypower/common/MicroPhotoContext.java +++ b/common/src/main/java/com/xypower/common/MicroPhotoContext.java @@ -314,10 +314,33 @@ public class MicroPhotoContext { */ - Intent LaunchIntent = context.getPackageManager().getLaunchIntentForPackage(PACKAGE_NAME_MPAPP); - LaunchIntent.putExtra("noDelay", 1); - LaunchIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); - context.startActivity(LaunchIntent); + restartApp(context, PACKAGE_NAME_MPAPP); + } + + public static void restartApp(Context context, String packageName) { + /* + Context context = MicroPhotoService.this.getApplicationContext(); + Intent intent = getPackageManager().getLaunchIntentForPackage(context.getPackageName()); + + int noDelay = 1; + intent.putExtra("noDelay", noDelay); + PendingIntent restartIntent = PendingIntent.getActivity(context, 0, intent, 0); + AlarmManager mgr = (AlarmManager)getSystemService(Context.ALARM_SERVICE); + mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 1000, restartIntent); // 1秒钟后重启应用 + System.exit(0); + + */ + + try { + Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName); + if (intent != null) { + intent.putExtra("noDelay", 1); + intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + context.startActivity(intent); + } + } catch (Exception e) { + e.printStackTrace(); + } } public static void saveMpAppConfig(Context context, AppConfig appConfig) { diff --git a/mpmaster/src/main/java/com/xypower/mpmaster/AppMaster.java b/mpmaster/src/main/java/com/xypower/mpmaster/AppMaster.java index 4a651b75..d013b101 100644 --- a/mpmaster/src/main/java/com/xypower/mpmaster/AppMaster.java +++ b/mpmaster/src/main/java/com/xypower/mpmaster/AppMaster.java @@ -223,6 +223,11 @@ public class AppMaster { updateConfig(path, fileName, configName, fieldType, val); } + + String packageName = jsonObject.optString("packageName", null); + if (packageName != null) { + MicroPhotoContext.restartApp(mService.getApplicationContext(), packageName); + } } } catch (Exception ex) { }