记住意图中使用的路径来覆盖onBackPressed

时间:2017-07-19 13:13:34

标签: java android android-intent onbackpressed

我正在处理android中的某个问题,我很难找到可行的解决方案。

情况如下: -

我有4项活动ABCD以及两条可能的路径:

路径1:A,B,C,D

路径2:A,B',D

B和B'指的是相同的活动但具有不同的视图(这里使用了recyclerview),具体取决于我最初的活动,即B或A.

我想要做的基本上是遵循这样的路径:A,B,C,D(直接)和D,C,B,A(当不断按下时)。与第二个相同:A, B', D(直接)和D,B',A(当不断按下时)。

按下后退时遇到很多问题所以我知道我必须覆盖onBackPressed。但是我怎么能弄清楚我在哪种情况下(路径1或路径2)?

感谢您的帮助,

1 个答案:

答案 0 :(得分:0)

尝试一下。

// 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) {
            Config.screenStack.remove(key);
            _activity.finish();
        }
    }
}

用户在setContentView添加到堆栈之前添加活动。

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

如果您想在应用中存在所有活动,可以see this code.