How to remove a particular activity from android back stack?

跟風遠走 提交于 2019-11-28 14:29:57

Try this in one.

// Add activity
public static void addActivities(String actName, Activity _activity) {
    if (Config.screenStack == null)
        Config.screenStack = new HashMap<String, Activity>();
    if (_activity != null)
        Config.screenStack.put(actName, _activity);
}

// Remove Activity
public static void removeActivity(String key) {
    if (Config.screenStack != null && Config.screenStack.size() > 0) {
        Activity _activity = Config.screenStack.get(key);
        if (_activity != null) {
            _activity.finish();
        }
    }
}

User add activities before setContentView to add into the stack.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    addActivities("DemoActivity", DemoActivity.this)
    setContentView(R.layout.activity_create_feed_post);
}

If you want to finish all activity when you exist from app you can see this code.

public class ActivityHandler{
private static HashMap<String, Activity> screenStack;

// Add activity
public static void addActivities(String actName, Activity _activity) {
    if (screenStack == null) {
        screenStack = new HashMap<String, Activity>();
    }

    if (_activity != null && !screenStack.containsKey(actName))
        screenStack.put(actName, _activity);
}

// Remove Activity
public static void removeActivity(String key) {
    if (screenStack != null && screenStack.size() > 0) {
        Activity _activity = screenStack.get(key);
        if (_activity != null && !_activity.isDestroyed() )
        {
            _activity.finish();
            screenStack.remove(key);
        }
    }
}}

In my Application... i used following lines to add or remove activity from stack.... To add activity.... ActivityHandler.addActivities("CheckoutActivity",CheckoutActivity.this);

To remove Activity... ActivityHandler.removeActivity("CheckoutActivity");

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!