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