From a8a25a3ae373115f9342c766a7ee241e8ca8f479 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期二, 15 七月 2025 15:20:34 +0800
Subject: [PATCH] 2025年07月15日15:20:32

---
 app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMPSDKManager.java         |    5 +
 app/src/main/java/com/hdl/photovoltaic/ui/LoginActivity.java               |    2 
 app/src/main/java/com/hdl/photovoltaic/ui/me/MeChangePasswordActivity.java |    6 +
 app/src/main/java/com/hdl/photovoltaic/ui/me/UnregisterActivity.java       |    3 
 app/src/main/assets/data/dcloud_control.xml                                |    2 
 app/src/main/java/com/hdl/photovoltaic/enums/LogoutType.java               |   36 ++++++++++++
 app/src/main/java/com/hdl/photovoltaic/ui/me/SetActivity.java              |    5 +
 app/src/main/java/com/hdl/photovoltaic/HDLApp.java                         |   63 +++++++++++++++++++-
 app/src/main/java/com/hdl/photovoltaic/other/HdlAccountLogic.java          |    7 +-
 app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java              |    3 
 10 files changed, 114 insertions(+), 18 deletions(-)

diff --git a/app/src/main/assets/data/dcloud_control.xml b/app/src/main/assets/data/dcloud_control.xml
index 7ccb586..ab101e5 100644
--- a/app/src/main/assets/data/dcloud_control.xml
+++ b/app/src/main/assets/data/dcloud_control.xml
@@ -1,4 +1,4 @@
-<hbuilder debug="true" syncDebug="true" version="1.9.9.80110">
+<hbuilder debug="false" syncDebug="false" version="1.9.9.80110">
     <apps>
         <app appid="unimp" appver="1.0" />
     </apps>
diff --git a/app/src/main/java/com/hdl/photovoltaic/HDLApp.java b/app/src/main/java/com/hdl/photovoltaic/HDLApp.java
index ae50d6e..1af3a6a 100644
--- a/app/src/main/java/com/hdl/photovoltaic/HDLApp.java
+++ b/app/src/main/java/com/hdl/photovoltaic/HDLApp.java
@@ -2,7 +2,9 @@
 
 import android.app.Activity;
 import android.app.ActivityManager;
+import android.app.AlarmManager;
 import android.app.Application;
+import android.app.PendingIntent;
 import android.content.Context;
 import android.content.Intent;
 import android.content.res.Configuration;
@@ -27,9 +29,11 @@
 import com.hdl.photovoltaic.config.AppConfigManage;
 import com.hdl.photovoltaic.config.ConstantManage;
 import com.hdl.photovoltaic.config.UserConfigManage;
+import com.hdl.photovoltaic.enums.LogoutType;
 import com.hdl.photovoltaic.enums.LowerTagType;
 import com.hdl.photovoltaic.enums.NetworkType;
 import com.hdl.photovoltaic.listener.CloudCallBeak;
+import com.hdl.photovoltaic.other.HdlAccountLogic;
 import com.hdl.photovoltaic.other.HdlDeviceLogic;
 import com.hdl.photovoltaic.other.HdlFileLogic;
 import com.hdl.photovoltaic.other.HdlLogLogic;
@@ -94,9 +98,10 @@
     @Override
     public void onCreate() {
         super.onCreate();
-        Log.d("=======", "11111111");
+
 //        // 鑾峰彇褰撳墠杩涚▼鐨凱ID
-//        String processMessage= "杩涚▼ID:"+Process.myPid()+" 杩涚▼鍚嶏細"+RuningAcitvityUtil.getAppName(getBaseContext());
+//        String processMessage = "杩涚▼Uid:" + Process.myUid() + "杩涚▼ID:" + Process.myPid() + " 杩涚▼鍚嶏細" + RuningAcitvityUtil.getAppName(getBaseContext());
+//        Log.d("=======", processMessage);
 //        Log.d(TAG, processMessage);
 //        if (RuningAcitvityUtil.getAppName(getBaseContext()).contains(":")) {
 //            //闈炲師鐢熻繘绋嬶紝鐢ㄥ垵濮嬪寲鍚庨潰鐨�
@@ -236,14 +241,21 @@
         HDLLinkPMUser.getInstance().setOnReloginListener(new IOnReloginListener() {
             @Override
             public void onReLogin(int type) {
-
-                if (100 == type) {
+                if (type == LogoutType.ServerSwitchingLogout.getValue()) {
                     new Handler().postDelayed(new Runnable() {
                         @Override
                         public void run() {
                             //鍒囨崲鏈嶅姟鍣ㄥ湴鍧�鐢ㄧ殑
                             UserConfigManage.getInstance().setOnlineServer(!UserConfigManage.getInstance().isOnlineServer());
                             UserConfigManage.getInstance().Save();
+                            restartApp(mHDLApp);
+                        }
+                    }, 500);
+                } else if (type == LogoutType.AbnormalLogout.getValue()) {
+                    //寮傚父鎯呭喌-寮哄埗閲嶅惎搴旂敤
+                    new Handler().postDelayed(new Runnable() {
+                        @Override
+                        public void run() {
                             restartApp(mHDLApp);
                         }
                     }, 500);
@@ -298,6 +310,41 @@
         });
 
     }
+
+    public void test(Context context) {
+//        new Handler().postDelayed(() -> {
+//            // 1. 璁剧疆寤惰繜閲嶅惎
+//            Intent restartIntent = new Intent(context, StartActivity.class);
+//            restartIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
+//
+//            PendingIntent pendingIntent = PendingIntent.getActivity(
+//                    context, 0, restartIntent, PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_CANCEL_CURRENT
+//            );
+//
+//            AlarmManager am1 = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
+//            am1.set(AlarmManager.RTC, System.currentTimeMillis() + 300, pendingIntent);
+//
+//            int myUid = android.os.Process.myUid();
+//            ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
+//            String packageName = context.getPackageName();
+//
+//            for (ActivityManager.RunningAppProcessInfo proc : am.getRunningAppProcesses()) {
+//                if (proc.uid == myUid && proc.processName.startsWith(packageName)) {
+//                    if (proc.pid != android.os.Process.myPid()) {
+//                        try {
+//                            android.os.Process.killProcess(proc.pid);
+//                        } catch (Exception e) {
+//                            e.printStackTrace();
+//                        }
+//                    }
+//                }
+//            }
+//
+//            // 3. 閫�鍑哄綋鍓嶈繘绋�
+//            android.os.Process.killProcess(android.os.Process.myPid());
+//        }, 500);
+    }
+
 
     /**
      * 鍒濆鍖朥niMPSDK 灏忕▼搴廠DK
@@ -458,6 +505,7 @@
         }
     }
 
+
     /**
      * 閲嶅惎app
      */
@@ -473,6 +521,11 @@
         }
     }
 
+    /**
+     * 鍏虫帀app鎵�鏈夎繘绋�
+     *
+     * @param context 涓婁笅鏂�
+     */
     private void killAppProcess(Context context) {
 //        AppManagerUtils.getAppManager().finishAllActivity();
         try {
@@ -480,7 +533,7 @@
             List<android.app.ActivityManager.RunningAppProcessInfo> processInfos = manager.getRunningAppProcesses();
             // 鍏堟潃鎺夌浉鍏宠繘绋嬶紝鏈�鍚庡啀鏉�鎺変富杩涚▼
             for (android.app.ActivityManager.RunningAppProcessInfo runningAppProcessInfo : processInfos) {
-                if (runningAppProcessInfo.pid != android.os.Process.myPid()) {
+                if ((runningAppProcessInfo.uid == android.os.Process.myUid()) && (runningAppProcessInfo.pid != android.os.Process.myPid())) {
                     try {
                         android.os.Process.killProcess(runningAppProcessInfo.pid);
                     } catch (Exception e) {
diff --git a/app/src/main/java/com/hdl/photovoltaic/enums/LogoutType.java b/app/src/main/java/com/hdl/photovoltaic/enums/LogoutType.java
new file mode 100644
index 0000000..ca2735f
--- /dev/null
+++ b/app/src/main/java/com/hdl/photovoltaic/enums/LogoutType.java
@@ -0,0 +1,36 @@
+package com.hdl.photovoltaic.enums;
+
+/**
+ * 閫�鍑虹櫥褰曠被鍨�
+ */
+public enum LogoutType {
+    /**
+     * 姝e父閫�鍑猴紙涓�鑸寚鐢ㄦ埛閫�鍑虹櫥褰曪紝瀵嗙爜鏇存柊锛�
+     */
+    NormalLogout(0),
+    /**
+     * 鏋佸厜涓诲姩閫氱煡閫�鍑�
+     */
+    JpushLogout(1),
+    /**
+     * uni涓诲姩閫氱煡閫�鍑�
+     */
+    UniLogout(2),
+    /**
+     * 鏈嶅姟鍣ㄥ垏鎹㈤��鍑�
+     */
+    ServerSwitchingLogout(3),
+    /**
+     * 寮傚父鎯呭喌锛堝師鐢熷拰灏忕▼閫氳鏂紑锛�
+     */
+    AbnormalLogout(-1);
+    private final int value;
+
+    LogoutType(int value) {
+        this.value = value;
+    }
+
+    public int getValue() {
+        return value;
+    }
+}
diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlAccountLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlAccountLogic.java
index 5cc4457..2d9a54f 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlAccountLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlAccountLogic.java
@@ -13,6 +13,7 @@
 import com.hdl.linkpm.sdk.user.callback.ILoginCallBack;
 import com.hdl.linkpm.sdk.user.callback.IRegionByAccountCallBack;
 import com.hdl.photovoltaic.config.UserConfigManage;
+import com.hdl.photovoltaic.enums.LogoutType;
 import com.hdl.photovoltaic.internet.HttpClient;
 import com.hdl.photovoltaic.internet.api.HttpApi;
 import com.hdl.photovoltaic.listener.CloudCallBeak;
@@ -818,18 +819,18 @@
     /**
      * 閫�鍑虹櫥褰�
      */
-    public void logout() {
+    public void logout(LogoutType logoutType) {
         HdlResidenceLogic.getInstance().pushDel(new CloudCallBeak<String>() {
             @Override
             public void onSuccess(String obj) {
 //                SharedPreUtils.putBoolean("pushAddCache", true);
-                HDLLinkPMUser.getInstance().logout(0);
+                HDLLinkPMUser.getInstance().logout(logoutType.getValue());
             }
 
             @Override
             public void onFailure(HDLException e) {
 //                SharedPreUtils.putBoolean("pushAddCache", false);
-                HDLLinkPMUser.getInstance().logout(0);
+                HDLLinkPMUser.getInstance().logout(logoutType.getValue());
             }
         });
     }
diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
index c3b16be..417e4ef 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
@@ -38,6 +38,7 @@
 import com.hdl.photovoltaic.bean.PageNumberObject;
 import com.hdl.photovoltaic.config.AppConfigManage;
 import com.hdl.photovoltaic.config.UserConfigManage;
+import com.hdl.photovoltaic.enums.LogoutType;
 import com.hdl.photovoltaic.internet.HttpClient;
 import com.hdl.photovoltaic.internet.HttpServer.MyNanoHttpServer;
 import com.hdl.photovoltaic.internet.TcpClient;
@@ -715,7 +716,7 @@
                     case HDLUniMP.UNI_EVENT_REPLY_OTHER_LOGOUT: {
                         HdlLogLogic.print("uni閫氱煡鍘熺敓閫�鍑虹櫥褰�---", true);
 //                        HDLLinkPMUser.getInstance().logout(0);
-                        HdlAccountLogic.getInstance().logout();
+                        HdlAccountLogic.getInstance().logout(LogoutType.NormalLogout);
                     }
                     break;
                     //鏈湴瀵嗛挜鑾峰彇
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/LoginActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/LoginActivity.java
index 92f10d5..0450dd8 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/LoginActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/LoginActivity.java
@@ -196,11 +196,11 @@
                 listDialog.setItemOnclickListener(new ListDialogAdapter.OnclickListener() {
                     @Override
                     public void onClick(int position, LanguageAdapter.ItemData itemData) {
+                        listDialog.dismiss();
                         UserConfigManage.getInstance().setCurrentAppLanguage(itemData.getLanguage());
                         UserConfigManage.getInstance().Save();
                         //閰嶇疆鎺ュ彛璇锋眰璇█
                         HDLLinkPMSdk.setLanguage(UserConfigManage.getInstance().getCurrentAppLanguage());
-                        listDialog.dismiss();
                         AppManagerUtils.getAppManager().finishAllActivity();
                         Intent intent = new Intent();
                         intent.setClass(HDLApp.getInstance(), StartActivity.class);
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/me/MeChangePasswordActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/me/MeChangePasswordActivity.java
index f0e31e5..fa765ae 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/me/MeChangePasswordActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/me/MeChangePasswordActivity.java
@@ -18,6 +18,7 @@
 import com.hdl.photovoltaic.base.CustomBaseActivity;
 import com.hdl.photovoltaic.config.UserConfigManage;
 import com.hdl.photovoltaic.databinding.ActivityMeChangePasswordBinding;
+import com.hdl.photovoltaic.enums.LogoutType;
 import com.hdl.photovoltaic.listener.CloudCallBeak;
 import com.hdl.photovoltaic.other.HdlAccountLogic;
 import com.hdl.photovoltaic.other.HdlLogLogic;
@@ -103,6 +104,7 @@
                 dialog.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() {
                     @Override
                     public void Confirm() {
+                        dialog.dismiss();
                         sendChangePassword(oldPsw, newPsw);
                     }
                 });
@@ -132,7 +134,7 @@
                     HdlLogLogic.print("B绔洿鏀逛釜浜哄瘑鐮侀��鍑虹櫥褰�--->", true);
 //                    HdlThreadLogic.tipFlashingBox(_mActivity, true, getString(R.string.home_login_pws_reset_succeeded), 0);
 //                    HDLLinkPMUser.getInstance().logout(0);
-                    HdlAccountLogic.getInstance().logout();
+                    HdlAccountLogic.getInstance().logout(LogoutType.NormalLogout);
                 }
 
                 @Override
@@ -147,7 +149,7 @@
                 public void onSuccess(String obj) {
                     HdlLogLogic.print("C绔洿鏀逛釜浜哄瘑鐮侀��鍑虹櫥褰�--->", true);
 //                    HDLLinkPMUser.getInstance().logout(0);
-                    HdlAccountLogic.getInstance().logout();
+                    HdlAccountLogic.getInstance().logout(LogoutType.NormalLogout);
 
 
                 }
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/me/SetActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/me/SetActivity.java
index 380d866..bbafcfa 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/me/SetActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/me/SetActivity.java
@@ -14,6 +14,7 @@
 import com.hdl.photovoltaic.config.AppConfigManage;
 import com.hdl.photovoltaic.config.UserConfigManage;
 import com.hdl.photovoltaic.databinding.ActivitySetBinding;
+import com.hdl.photovoltaic.enums.LogoutType;
 import com.hdl.photovoltaic.listener.CloudCallBeak;
 import com.hdl.photovoltaic.other.HdlAccountLogic;
 import com.hdl.photovoltaic.other.HdlLogLogic;
@@ -172,7 +173,7 @@
             public void Confirm() {
                 dialog.dismiss();
                 HdlLogLogic.print("璁剧疆鐣岄潰閫�鍑虹櫥褰�---", true);
-                HdlAccountLogic.getInstance().logout();
+                HdlAccountLogic.getInstance().logout(LogoutType.NormalLogout);
 
             }
         });
@@ -200,7 +201,7 @@
             public void Confirm() {
                 dialog.dismiss();
                 HdlLogLogic.print("璁剧疆鏄惁鍒囨崲鐜鐣岄潰閫�鍑虹櫥褰�---", true);
-                HDLLinkPMUser.getInstance().logout(100);
+                HdlAccountLogic.getInstance().logout(LogoutType.ServerSwitchingLogout);
             }
         });
         dialog.setNoOnclickListener(new ConfirmationCancelDialog.onNoOnclickListener() {
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/me/UnregisterActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/me/UnregisterActivity.java
index 25b6efc..1ea02b7 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/me/UnregisterActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/me/UnregisterActivity.java
@@ -14,6 +14,7 @@
 import com.hdl.photovoltaic.base.CustomBaseActivity;
 import com.hdl.photovoltaic.config.UserConfigManage;
 import com.hdl.photovoltaic.databinding.ActivityUnregisterBinding;
+import com.hdl.photovoltaic.enums.LogoutType;
 import com.hdl.photovoltaic.listener.CloudCallBeak;
 import com.hdl.photovoltaic.other.HdlAccountLogic;
 import com.hdl.photovoltaic.other.HdlLogLogic;
@@ -114,7 +115,7 @@
                 dialog.dismiss();
                 HdlLogLogic.print("娉ㄩ攢璐﹀彿閫�鍑虹櫥褰�---", true);
 //                HDLLinkPMUser.getInstance().logout(0);
-                HdlAccountLogic.getInstance().logout();
+                HdlAccountLogic.getInstance().logout(LogoutType.NormalLogout);
             }
         });
         dialog.setNoOnclickListener(new ConfirmationCancelDialog.onNoOnclickListener() {
diff --git a/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMPSDKManager.java b/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMPSDKManager.java
index 9a111c7..6220d32 100644
--- a/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMPSDKManager.java
+++ b/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMPSDKManager.java
@@ -16,6 +16,7 @@
 import com.hdl.photovoltaic.R;
 import com.hdl.photovoltaic.config.AppConfigManage;
 import com.hdl.photovoltaic.config.UserConfigManage;
+import com.hdl.photovoltaic.enums.LogoutType;
 import com.hdl.photovoltaic.enums.LowerTagType;
 import com.hdl.photovoltaic.other.HdlAccountLogic;
 import com.hdl.photovoltaic.other.HdlLogLogic;
@@ -178,7 +179,7 @@
                             //鏈夊彲鑳芥槸绯荤粺鍥炴敹鎺塧ctivity瀵艰嚧鍥炶皟涓簄ull锛岃繖鏍锋儏鍐典笅寮哄埗杩斿洖鐧诲綍鐣岄潰锛�
                             //todo 闀挎椂闂存病鍝嶅簲灏嗛��鍑虹櫥褰曠晫闈㈤噸鏂扮櫥褰�
 //                            HDLLinkPMUser.getInstance().logout(0);
-                            HdlAccountLogic.getInstance().logout();
+                            HdlAccountLogic.getInstance().logout(LogoutType.AbnormalLogout);
                         }
                     }
                 }
@@ -334,7 +335,7 @@
             @Override
             public void onInitFinished(boolean b) {
 
-                HdlLogLogic.print("UniMPSDK 鍒濆鍖栧畬鎴�----" + b,true);
+                HdlLogLogic.print("UniMPSDK 鍒濆鍖栧畬鎴�----" + b, true);
             }
         });
 

--
Gitblit v1.8.0