Android后退按钮行为问题...

时间:2017-06-14 08:39:04

标签: android android-intent android-activity onbackpressed

我一直在使用finish()进行后退按钮返回上一个活动并且工作正常但是它没有按照预期的那样工作。

以下列出了我的活动及其功能:

活动A - 显示在线论坛主题

活动B - 显示论坛主题的评论

活动C - 发表新评论

用户发布新评论后,他将被定向到活动B.

问题:

当我点击活动B上的后退按钮时,它将返回活动C,因为这是我以前的活动。

活动A - >活动B - >活动C - >活动B - >活动C - >活动B - >活动A

期望

我希望用户在活动中从活动B返回活动A.

活动A - >活动B - >活动C - >活动B - >活动A

我尝试使用intent仅在后退时将活动B指向A,但它正在重新加载活动A上我不想要的数据。

我试过的代码:

case android.R.id.home:
            finish();
            return true;
//this works if i am only going back and forth one activity

case android.R.id.home:
 Intent i = new Intent(ActivityB.this, ActivityA.class);
            i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            i.putExtra("forumLink", forumLink);
            i.putExtra("forumTitle", forumTitle);
            startActivity(i);
//this refreshes Activity A data

2 个答案:

答案 0 :(得分:1)

finish()之前致电Activity C,然后从 C 转到 B

您可以将Activity A作为 B 的父级,将 B 作为 C的父级

答案 1 :(得分:0)

你必须在进入活动B之前杀死活动C. 由于您的活动c退出,这就是为什么它将进行活动c。 因此,使用finish()来杀死活动c。杀死活动c会将您重定向到活动b。