| | |
| | | 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 com.hdl.photovoltaic.R; |
| | | import com.hdl.photovoltaic.other.HdlThreadLogic; |
| | | import com.hdl.photovoltaic.widget.LoadingDialog; |
| | | |
| | | import java.util.Iterator; |
| | | import java.util.List; |
| | | import java.util.Stack; |
| | | |
| | | /** |
| | |
| | | public class AppManagerUtils { |
| | | |
| | | private static AppManagerUtils appManagerUtils; |
| | | |
| | | private LoadingDialog loadingDialog; |
| | | |
| | | private AppManagerUtils() { |
| | | } |
| | |
| | | } |
| | | |
| | | /** |
| | | * 是否存在类名的Activity |
| | | */ |
| | | public boolean existsActivity(Class<?>... args) { |
| | | for (Activity activity : activityStack) { |
| | | for (Class<?> cls : args) { |
| | | if (activity.getClass().equals(cls)) { |
| | | return true; |
| | | } |
| | | } |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | /** |
| | | * 指定一个类名,从指定类名开始移除后面所有Activity |
| | | * |
| | | * @param className Activity-类名(activity.getClass().getName()) |
| | |
| | | // } |
| | | } |
| | | |
| | | |
| | | 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列表,判断目标Activity是否在列表中 |
| | | for (ActivityManager.RunningTaskInfo info : taskInfo) { |
| | | if (info.topActivity.getClassName().equals("com.hdl.photovoltaic.ui.LoginActivity")) { |
| | | // 目标Activity存在 |
| | | // 在这里可以进行相应处理 |
| | | isLoginActivity = true; |
| | | break; |
| | | } |
| | | } |
| | | return isLoginActivity; |
| | | } |
| | | |
| | | /** |
| | | * 结束所有Activity |
| | | */ |
| | | 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); |
| | |
| | | return activityStack.size(); |
| | | } |
| | | |
| | | /** |
| | | * 获取当前的Activity |
| | | * |
| | | * @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; |
| | | } |
| | | |
| | | /** |
| | | * 开始Loading |
| | | */ |
| | | public void showLoading() { |
| | | getLoadingDialog().start(); |
| | | } |
| | | |
| | | /** |
| | | * 开始Loading |
| | | * |
| | | * @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); |
| | | } |
| | | |
| | | |
| | | // /** |
| | | // * 判断当前应用是否是debug状态 |
| | | // */ |