android 判断服务是否活动,检查 Activity 是否处于活动状态_android_开发99编程知识库...

我有 2個活動是一個 & Activity,我只是想知道正在運行還是來自。

最初我跟隨"RunningTaskInfo"來解決這個問題,它沒有運行 100% 。

所以我創建了自己的解決方案,我將發布我的解決方案。 使用HashMap和AtomicBoolean類。public class ActivityStateTracker {

final private Map mMap = new HashMap();

private static ActivityStateTracker instance = null;

/**

* SingletonClass

* */

private ActivityStateTracker() {

}

public static ActivityStateTracker getInstance(String activityName, boolean defaultVal) {

if(instance == null) {

instance = new ActivityStateTracker();

}

instance.setDefaultValue(activityName, defaultVal);

return instance;

}

private void setDefaultValue(String activityName, boolean defaultVal) {

mMap.put(activityName, new AtomicBoolean(defaultVal));

}

public boolean isRunning(String activityName) {

final AtomicBoolean atomicBool = mMap.get(activityName);

return (mMap.get(activityName) == null)? false : atomicBool.get();

}

public void setChangeState(String activityName, boolean value) {

final AtomicBoolean atomicBool = mMap.get(activityName);

if(atomicBool == null) {

setDefaultValue(activityName, value);

} else {

atomicBool.set(value);

mMap.put(activityName, atomicBool);

}

}

%7D

現在在 Activity 中。public static final String TAG ="EditScreenPopupActivity";

static ActivityStateTracker mActivityState = ActivityStateTracker.getInstance(TAG, false);

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

mActivityState.setChangeState(TAG, true);

requestWindowFeature(Window.FEATURE_NO_TITLE);

setContentView(R.layout.activity_traslucent);

}

@Override

protected void onDestroy() {

mActivityState.setChangeState(TAG, false);

super.onDestroy();

}

現在在 Activity 中。public static final String TAG ="ToolTipPopupActivity";

static ActivityStateTracker mActivityState = ActivityStateTracker.getInstance(TAG, false);

/** Check Edit screen activity is running or not? */

if(mActivityState.isRunning("EditScreenPopupActivity")) {

finish();

}

。。。

這個解決方案在我的情況下工作正常。 我希望它也能幫助你。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值