修复多窗口重复创建问题
This commit is contained in:
		| @@ -1,8 +1,8 @@ | ||||
| #Created by .winboll/winboll_app_build.gradle | ||||
| #Sat May 31 13:31:02 GMT 2025 | ||||
| #Sun Jun 01 06:01:20 GMT 2025 | ||||
| stageCount=2 | ||||
| libraryProject=libappbase | ||||
| baseVersion=15.8 | ||||
| publishVersion=15.8.1 | ||||
| buildCount=25 | ||||
| buildCount=31 | ||||
| baseBetaVersion=15.8.2 | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| #Created by .winboll/winboll_app_build.gradle | ||||
| #Sat May 31 13:31:02 GMT 2025 | ||||
| #Sun Jun 01 06:01:20 GMT 2025 | ||||
| stageCount=2 | ||||
| libraryProject=libappbase | ||||
| baseVersion=15.8 | ||||
| publishVersion=15.8.1 | ||||
| buildCount=25 | ||||
| buildCount=31 | ||||
| baseBetaVersion=15.8.2 | ||||
|   | ||||
| @@ -57,7 +57,7 @@ public class WinBoLLActivityManager { | ||||
|      * 把Activity添加到管理中 | ||||
|      */ | ||||
|     public <T extends IWinBoLLActivity> void add(T activity) { | ||||
|         if (isActive(activity.getTag())) { | ||||
|         if (isActivityActive(activity.getTag())) { | ||||
|             LogUtils.d(TAG, String.format("add(...) %s is active.", activity.getTag())); | ||||
|         } else { | ||||
|             mActivityListMap.put(activity.getTag(), activity); | ||||
| @@ -125,30 +125,22 @@ public class WinBoLLActivityManager { | ||||
|     // | ||||
|     // 判断 tag 绑定的 Activity 是否已经创建 | ||||
|     // | ||||
|     public boolean isActive(String tag) { | ||||
|         Activity activity = getActivityByTag(tag); | ||||
|         if (activity != null) { | ||||
|             //判断是否正在关闭 | ||||
|             if (activity.isFinishing() || activity.isDestroyed()) { | ||||
|                 return false; | ||||
|             } else { | ||||
|                 return true; | ||||
|             } | ||||
|         } | ||||
|         return false; | ||||
|     public boolean isActivityActive(String tag) { | ||||
|         return mActivityListMap.get(tag) != null; | ||||
|     } | ||||
|  | ||||
|     Activity getActivityByTag(String tag) { | ||||
|         return (mActivityListMap.get(tag) == null) ?null: mActivityListMap.get(tag).getActivity(); | ||||
|     } | ||||
|  | ||||
|  | ||||
|     // | ||||
|     // 找到tag 绑定的 BaseActivity ,通过 getTaskId() 移动到前台 | ||||
|     // | ||||
|     public <T extends IWinBoLLActivity> boolean resumeActivity(Class<T> clazz) { | ||||
|         try { | ||||
|             Activity activity = getActivityByTag(clazz.newInstance().getTag()); | ||||
|             if (activity != null && !activity.isFinishing() && !activity.isDestroyed()) { | ||||
|             if (activity != null) { | ||||
|                 return resumeActivity(activity); | ||||
|             } | ||||
|         } catch (InstantiationException | IllegalAccessException e) { | ||||
| @@ -157,18 +149,29 @@ public class WinBoLLActivityManager { | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     // | ||||
|     // 找到tag 绑定的 BaseActivity ,通过 getTaskId() 移动到前台 | ||||
|     // | ||||
|     public <T extends IWinBoLLActivity> boolean resumeActivity(String tag) { | ||||
|         Activity activity = getActivityByTag(tag); | ||||
|         if (activity != null) { | ||||
|             return resumeActivity(activity); | ||||
|         } | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     // | ||||
|     // 找到tag 绑定的 BaseActivity ,通过 getTaskId() 移动到前台 | ||||
|     // | ||||
|     public <T extends IWinBoLLActivity> boolean resumeActivity(Activity activity) { | ||||
|         ActivityManager am = (ActivityManager) activity.getSystemService(Context.ACTIVITY_SERVICE); | ||||
|         //返回启动它的根任务(home 或者 MainActivity) | ||||
|         Intent intent = new Intent(mContext, activity.getClass()); | ||||
|         TaskStackBuilder stackBuilder = TaskStackBuilder.create(mContext); | ||||
|         stackBuilder.addNextIntentWithParentStack(intent); | ||||
|         stackBuilder.startActivities(); | ||||
|         //Intent intent = new Intent(mContext, activity.getClass()); | ||||
|         //TaskStackBuilder stackBuilder = TaskStackBuilder.create(mContext); | ||||
|         //stackBuilder.addNextIntentWithParentStack(intent); | ||||
|         //stackBuilder.startActivities(); | ||||
|         am.moveTaskToFront(activity.getTaskId(), ActivityManager.MOVE_TASK_NO_USER_ACTION); | ||||
|         ToastUtils.show("resumeActivity"); | ||||
|         //ToastUtils.show("resumeActivity"); | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 ZhanGSKen
					ZhanGSKen