3

我有 4 项活动:A、B、C 和 D。还有一项:E。

当你在 A、B、C 和 D 之间开始一个新的活动时没有问题。但是在其中的某些点(例如,当登录成功时)我们想要开始活动 E 但清除所有 A、B、C 和D 活动(即清除回栈)。

所以,我想当你到达活动 E 并按下后退按钮时,你将离开应用程序。

我正在尝试在 startActivity 中添加标志:Intent.FLAG_ACTIVITY_CLEAR_TASK、Intent.FLAG_ACTIVITY_CLEAR_TOP 等等,但我无法实现这种行为。

任何想法?

谢谢!

4

3 回答 3

1
Intent intent = new Intent(this, EActivity.class);
                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

                this.startActivity(intent);
                this.finish();
于 2012-12-04T16:50:17.527 回答
0

将活动 E 中的 onBackPressed 覆盖为

    @Override
    public void onBackPressed() {
        moveTaskToBack(true);
    }
于 2012-12-04T16:33:39.207 回答
0

尝试startActivity活动 A、B、C 和 E

Intent intent = new Intent(A.this,B.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);
A.this.finish();

并声明您的 A、B 和 C 活动,如下所示androidmanifest.xml

<Activity android:name=".A" 
    android:launchMode="singleInstance" />
 //..do B,C activities same

并覆盖 Activity E 中的 onKeyDown

@verride
public boolean onKeyDown(int keyCode, KeyEvent event)
{
    if ((keyCode == KeyEvent.KEYCODE_BACK))
    {
        Activity_E.this.finish();
    }
    return super.onKeyDown(keyCode, event);
}
于 2012-12-04T16:36:01.320 回答