From 5d3efa4c93dde0cde474951e5310bb72ebbf4184 Mon Sep 17 00:00:00 2001 From: wjc <1243177876@qq.com> Date: 星期三, 07 五月 2025 15:18:26 +0800 Subject: [PATCH] 2025年05月07日15:18:20 1.2.0 --- app/src/main/java/com/hdl/photovoltaic/utils/AppManagerUtils.java | 162 ++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 102 insertions(+), 60 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/utils/AppManagerUtils.java b/app/src/main/java/com/hdl/photovoltaic/utils/AppManagerUtils.java index b85206e..7429be0 100644 --- a/app/src/main/java/com/hdl/photovoltaic/utils/AppManagerUtils.java +++ b/app/src/main/java/com/hdl/photovoltaic/utils/AppManagerUtils.java @@ -1,22 +1,17 @@ package com.hdl.photovoltaic.utils; import android.app.Activity; +import android.app.ActivityManager; import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; -import android.net.ConnectivityManager; -import android.net.NetworkInfo; -import android.net.wifi.WifiInfo; -import android.net.wifi.WifiManager; -import com.hdl.photovoltaic.HDLApp; +import com.hdl.photovoltaic.R; +import com.hdl.photovoltaic.other.HdlThreadLogic; +import com.hdl.photovoltaic.widget.LoadingDialog; -import java.net.Inet4Address; -import java.net.InetAddress; -import java.net.NetworkInterface; -import java.net.SocketException; -import java.util.Enumeration; import java.util.Iterator; +import java.util.List; import java.util.Stack; /** @@ -28,6 +23,8 @@ public class AppManagerUtils { private static AppManagerUtils appManagerUtils; + + private LoadingDialog loadingDialog; private AppManagerUtils() { } @@ -104,6 +101,20 @@ } /** + * 鏄惁瀛樺湪绫诲悕鐨凙ctivity + */ + public boolean existsActivity(Class<?>... args) { + for (Activity activity : activityStack) { + for (Class<?> cls : args) { + if (activity.getClass().equals(cls)) { + return true; + } + } + } + return false; + } + + /** * 鎸囧畾涓�涓被鍚�,浠庢寚瀹氱被鍚嶅紑濮嬬Щ闄ゅ悗闈㈡墍鏈堿ctivity * * @param className Activity-绫诲悕(activity.getClass().getName()) @@ -142,10 +153,31 @@ // } } + + public boolean existsActivity(Context activity,String className){ + boolean isLoginActivity = false; + // 鑾峰彇褰撳墠Activity鐨勫垪琛� + ActivityManager activityManager = (ActivityManager) activity.getSystemService(Context.ACTIVITY_SERVICE); + List<ActivityManager.RunningTaskInfo> taskInfo = activityManager.getRunningTasks(1); + // 閬嶅巻Activity鍒楄〃锛屽垽鏂洰鏍嘇ctivity鏄惁鍦ㄥ垪琛ㄤ腑 + for (ActivityManager.RunningTaskInfo info : taskInfo) { + if (info.topActivity.getClassName().equals("com.hdl.photovoltaic.ui.LoginActivity")) { + // 鐩爣Activity瀛樺湪 + // 鍦ㄨ繖閲屽彲浠ヨ繘琛岀浉搴斿鐞� + isLoginActivity = true; + break; + } + } + return isLoginActivity; + } + /** * 缁撴潫鎵�鏈堿ctivity */ public void finishAllActivity() { + if (activityStack == null) { + return; + } for (int i = 0, size = activityStack.size(); i < size; i++) { if (null != activityStack.get(i)) { Activity activity = activityStack.get(i); @@ -165,6 +197,66 @@ return activityStack.size(); } + /** + * 鑾峰彇褰撳墠鐨凙ctivity + * + * @return - + */ + public Activity getLastActivity() { + if (activityStack.size() > 0) { + return activityStack.get(activityStack.size() - 1); + } + return null; + } + + + + + /** + * 鑾峰彇LoadingDialog + * + * @return LoadingDialog + */ + public LoadingDialog getLoadingDialog() { + Activity activity = getLastActivity(); + if (loadingDialog == null && activity != null) { + loadingDialog = new LoadingDialog(activity, R.style.Custom_Dialog); + } + return loadingDialog; + } + + /** + * 寮�濮婰oading + */ + public void showLoading() { + getLoadingDialog().start(); + } + + /** + * 寮�濮婰oading + * + * @param mes 鑷畾涔夋枃鏈� + */ + public void showLoading(String mes) { + getLoadingDialog().start(); + getLoadingDialog().setText(mes); + } + + /** + * 鍋滄闅愯棌Loading + */ + public void hideLoading() { + HdlThreadLogic.runMainThread(new Runnable() { + @Override + public void run() { + if (loadingDialog != null && loadingDialog.isShowing()) { + loadingDialog.stop(); + } + } + }, null, null); + } + + // /** // * 鍒ゆ柇褰撳墠搴旂敤鏄惁鏄痙ebug鐘舵�� // */ @@ -176,56 +268,6 @@ // return false; // } // } - - /** - * 鑾峰緱IP鍦板潃锛屽垎涓轰袱绉嶆儏鍐�: - * 涓�锛氭槸wifi涓嬶紱 - * 浜岋細鏄Щ鍔ㄧ綉缁滀笅锛� - */ - public String getIPAddress(Context context) { - NetworkInfo info = ((ConnectivityManager) context - .getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo(); - if (info != null && info.isConnected()) { - if (info.getType() == ConnectivityManager.TYPE_MOBILE) {//褰撳墠浣跨敤2G/3G/4G缃戠粶 - try { - //Enumeration<NetworkInterface> en=NetworkInterface.getNetworkInterfaces(); - for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements(); ) { - NetworkInterface intf = en.nextElement(); - for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements(); ) { - InetAddress inetAddress = enumIpAddr.nextElement(); - if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet4Address) { - return inetAddress.getHostAddress(); - } - } - } - } catch (SocketException e) { - e.printStackTrace(); - } - } else if (info.getType() == ConnectivityManager.TYPE_WIFI) {//褰撳墠浣跨敤鏃犵嚎缃戠粶 - WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); - WifiInfo wifiInfo = wifiManager.getConnectionInfo(); - //璋冪敤鏂规硶灏唅nt杞崲涓哄湴鍧�瀛楃涓� - String ipAddress = intIP2StringIP(wifiInfo.getIpAddress());//寰楀埌IPV4鍦板潃 - return ipAddress; - } - } else { - //褰撳墠鏃犵綉缁滆繛鎺�,璇峰湪璁剧疆涓墦寮�缃戠粶 - } - return null; - } - - /** - * 灏嗗緱鍒扮殑int绫诲瀷鐨処P杞崲涓篠tring绫诲瀷 - * - * @param ip int绫诲瀷 - * @return - - */ - public static String intIP2StringIP(int ip) { - return (ip & 0xFF) + "." + - ((ip >> 8) & 0xFF) + "." + - ((ip >> 16) & 0xFF) + "." + - (ip >> 24 & 0xFF); - } } -- Gitblit v1.8.0