Android 后退按钮行为问题...
Android back button behaviour issue...
我一直在使用 finish() 来按下后退按钮以返回到上一个 activity 并且它工作正常,但在这种特定情况下它没有按预期工作。
以下是我的活动列表及其功能:
Activity A - 显示在线论坛主题
Activity B - 显示论坛主题的评论
Activity C - Post 一条新评论
用户post发表新评论后,他将被引导至activity B.
问题:
当我点击 Activity B 上的后退按钮时,它会返回到 Activity C,因为这是我之前的 activity。
Activity A -> Activity B -> Activity C -> Activity B -> Activity C -> Activity B -> Activity A
预期
我无论如何都希望用户从 activity B 回到 activity A。
Activity A -> Activity B -> Activity C -> Activity B -> Activity A
我尝试使用意图仅在按下后将 Activity B 定向到 A,但它正在重新加载 Activity 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
在从 C 到 B.
之前,在 Activity C
上调用 finish()
您可以将 Activity A
作为 B 的父级,并将 B 作为 C[ 的父级=22=]
你必须杀掉Activity C才能去activity B。
由于您的 activity c 退出,这就是为什么它会进入 activity c。
所以,使用 finish() 来杀死 activity c。杀死 activity c 会将您重定向到 activity b.
我一直在使用 finish() 来按下后退按钮以返回到上一个 activity 并且它工作正常,但在这种特定情况下它没有按预期工作。
以下是我的活动列表及其功能:
Activity A - 显示在线论坛主题
Activity B - 显示论坛主题的评论
Activity C - Post 一条新评论
用户post发表新评论后,他将被引导至activity B.
问题:
当我点击 Activity B 上的后退按钮时,它会返回到 Activity C,因为这是我之前的 activity。
Activity A -> Activity B -> Activity C -> Activity B -> Activity C -> Activity B -> Activity A
预期
我无论如何都希望用户从 activity B 回到 activity A。
Activity A -> Activity B -> Activity C -> Activity B -> Activity A
我尝试使用意图仅在按下后将 Activity B 定向到 A,但它正在重新加载 Activity 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
在从 C 到 B.
之前,在Activity C
上调用 finish()
您可以将 Activity A
作为 B 的父级,并将 B 作为 C[ 的父级=22=]
你必须杀掉Activity C才能去activity B。 由于您的 activity c 退出,这就是为什么它会进入 activity c。 所以,使用 finish() 来杀死 activity c。杀死 activity c 会将您重定向到 activity b.