修复多窗口重复创建问题
This commit is contained in:
parent
56692db142
commit
d5a3c626b3
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user