56 lines
1.3 KiB
Java
56 lines
1.3 KiB
Java
package com.mango.moshen.application;
|
||
|
||
import android.app.Activity;
|
||
|
||
|
||
import com.mango.moshen.avroom.activity.AVRoomActivity;
|
||
import com.mango.moshen.utils.ActWhiteListMrg;
|
||
|
||
import java.lang.ref.WeakReference;
|
||
|
||
import lombok.Getter;
|
||
|
||
|
||
/**
|
||
* create by lvzebiao @2019/8/8
|
||
*/
|
||
public class ActivityStackManager {
|
||
|
||
/**
|
||
* 用于保持最顶的Activity实例,排除中转的activity
|
||
* 比如{@link com.mango.moshen.MiddleActivity}
|
||
*/
|
||
@Getter
|
||
private WeakReference<Activity> topUpgradeWeakRef;
|
||
|
||
@Getter
|
||
private WeakReference<Activity> avRoomActWeakRef;
|
||
|
||
public void setTopUpgradeActivity(Activity activity) {
|
||
if (!ActWhiteListMrg.isTempActivity(activity)) {
|
||
topUpgradeWeakRef = new WeakReference<>(activity);
|
||
}
|
||
}
|
||
|
||
public void addActivity(Activity activity){
|
||
if (activity instanceof AVRoomActivity) {
|
||
avRoomActWeakRef = new WeakReference<>(activity);
|
||
}
|
||
}
|
||
|
||
public void removeActivity(Activity activity){
|
||
if (activity instanceof AVRoomActivity) {
|
||
avRoomActWeakRef = null;
|
||
}
|
||
}
|
||
|
||
private static final class Helper {
|
||
public static final ActivityStackManager INSTANCE = new ActivityStackManager();
|
||
}
|
||
|
||
public static ActivityStackManager getInstance() {
|
||
return Helper.INSTANCE;
|
||
}
|
||
|
||
}
|