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