From 2d0aa556a87a96cd930306122980deb3d0b7230e Mon Sep 17 00:00:00 2001 From: wjc <1243177876@qq.com> Date: 星期五, 18 七月 2025 14:27:25 +0800 Subject: [PATCH] 2025年07月18日14:27:24 --- app/src/main/java/com/hdl/photovoltaic/HDLApp.java | 108 +++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 83 insertions(+), 25 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/HDLApp.java b/app/src/main/java/com/hdl/photovoltaic/HDLApp.java index 612151e..d47e9c2 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; @@ -20,14 +22,18 @@ import com.google.gson.Gson; import com.hdl.hdlhttp.HxHttpConfig; import com.hdl.linkpm.sdk.HDLLinkPMSdk; +import com.hdl.linkpm.sdk.core.exception.HDLException; import com.hdl.linkpm.sdk.user.HDLLinkPMUser; import com.hdl.linkpm.sdk.user.callback.IOnReloginListener; import com.hdl.linkpm.sdk.utils.HDLSDKSPUtils; 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; @@ -92,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(":")) { // //闈炲師鐢熻繘绋嬶紝鐢ㄥ垵濮嬪寲鍚庨潰鐨� @@ -234,23 +241,32 @@ HDLLinkPMUser.getInstance().setOnReloginListener(new IOnReloginListener() { @Override public void onReLogin(int type) { - if (100 == type) { -// new Handler().postDelayed(new Runnable() { -// @Override -// public void run() { -// //鍒囨崲鏈嶅姟鍣ㄥ湴鍧�鐢ㄧ殑 -// UserConfigManage.getInstance().setOnlineServer(!UserConfigManage.getInstance().isOnlineServer()); -// UserConfigManage.getInstance().Save(); -// restartApp(mHDLApp); -// } -// }, 500); - ; + 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); } else { HdlLogLogic.print("鐩戝惉鍒扮櫥褰曢��鍑�---" + type, true); + //鍒犻櫎鎺ㄩ�乀oken +// HdlResidenceLogic.getInstance().pushDel(null); //type: 0:姝e父閫�鍑� 1锛氭瀬鍏夋帹閫佸己鍒堕��鍑� //鏀跺埌鐧诲綍澶勭悊閫氱煡锛屽叧闂墍鏈夐〉闈㈠苟鎵撳紑鐧诲綍椤甸潰 AppManagerUtils.getAppManager().finishAllActivity(); -// HDLSDKSPUtils.clear();//搴曞眰鑷繁娓呯┖ + // HDLSDKSPUtils.clear();//搴曞眰鑷繁娓呯┖ //娓呯┖浣忓畢id UserConfigManage.getInstance().setHomeId(""); @@ -294,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 @@ -454,21 +505,28 @@ } } + /** * 閲嶅惎app */ -// private void restartApp(Context context) { -// try { + private void restartApp(Context context) { + try { // MobclickAgent.onKillProcess(context); -// Intent intent = new Intent(context, StartActivity.class); -// intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); -// context.startActivity(intent); -// killAppProcess(context); -// } catch (Exception e) { -// String a = e.getMessage(); -// } -// } + SystemClock.sleep(300); + Intent intent = new Intent(context, StartActivity.class); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); + context.startActivity(intent); + killAppProcess(context); + } catch (Exception e) { + String a = e.getMessage(); + } + } + /** + * 鍏虫帀app鎵�鏈夎繘绋� + * + * @param context 涓婁笅鏂� + */ private void killAppProcess(Context context) { // AppManagerUtils.getAppManager().finishAllActivity(); try { @@ -476,7 +534,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) { -- Gitblit v1.8.0