I was having 2 activities A & B, I just wanted to know Activity B is running or not from A.
Initially i followed "RunningTaskInfo" for resolving the problem, It was not working 100%.
So i created own solution, I will post my solution. Using HashMap and AtomicBoolean class.
public class ActivityStateTracker {
final private Map<String, AtomicBoolean> mMap = new HashMap<String, AtomicBoolean>();
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);
}
}
}
Now in Activity B.
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();
}
Now in Activity A.
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();
}
......................................
This solution is working properly in my case.. I hope it will help you as well..