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