From 06f38f3ff07b758b97136d08cfe13440e88ee36e Mon Sep 17 00:00:00 2001 From: Matthew Date: Wed, 7 May 2025 17:31:28 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=9D=80=E8=BF=9B=E7=A8=8B?= =?UTF-8?q?=E7=9A=84=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xypower/mpmaster/MpMasterService.java | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java b/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java index 2864a049..d5234d88 100644 --- a/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java +++ b/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java @@ -171,7 +171,7 @@ public class MpMasterService extends Service { @Override public IBinder onBind(Intent intent) { // TODO: Return the communication channel to the service. - throw new UnsupportedOperationException("Not yet implemented"); + // throw new UnsupportedOperationException("Not yet implemented"); } @Override @@ -1300,11 +1300,11 @@ public class MpMasterService extends Service { //重启MpApp应用 public static void restartMpApp(Context context, String reason) { - SysApi.forceStopApp(context, MicroPhotoContext.PACKAGE_NAME_MPAPP); + forceStopMpApp(context); try { Thread.sleep(100); } catch (InterruptedException e) { - throw new RuntimeException(e); + e.printStackTrace(); } //// 然后启动目标应用 try { @@ -1322,13 +1322,24 @@ public class MpMasterService extends Service { } } + private static void forceStopMpApp(Context context) { + if (Build.TIME < 1744905600000L) { + SysApi.forceStopApp(context, MicroPhotoContext.PACKAGE_NAME_MPAPP); + } else { + int pid = MicroPhotoContext.getProcessIdOfService(context, MicroPhotoContext.PACKAGE_NAME_MPAPP, MicroPhotoContext.SERVICE_NAME_MPSERVICE); + if (pid != 0) { + android.os.Process.killProcess(pid); + } + } + } + //根据包名重启应用 public static void restartAppByPackage(Context context, String packagename, String reason) { - SysApi.forceStopApp(context, packagename); + forceStopMpApp(context); try { Thread.sleep(100); } catch (InterruptedException e) { - + e.printStackTrace(); } //// 然后启动目标应用 try {