如何在android中清除所有以前的堆栈活动?

时间:2014-04-10 07:12:48

标签: android android-activity

我想清除之前的所有活动堆栈并启动新活动。但是当我按回键控制转到之前的活动。我没有完成以前的所有活动。当我退出时,我想退出应用程序。 我使用下面的标志:

intentLogin.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intentLogin.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intentLogin.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
intentLogin.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);

并在AndroidManifest.xml中添加以下行

android:launchMode="singleInstance" 

但是在启动新活动之前会出现白屏。

我也将主题更改为Translucent但在启动活动时,但它显示了android主页图标。

我不想使用:

moveTaskToBack(true);

2 个答案:

答案 0 :(得分:0)

只需在intent中设置此标志,

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);

答案 1 :(得分:0)

我希望这会对你有所帮助

 logoutButton.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View arg0) {
                    SharedPreferences myPrefs = getSharedPreferences("Activity",
                            MODE_PRIVATE);

                    /*AppState.getSingleInstance().setLoggingOut(true);*/
                    setLoginState(true);
                    Log.d(TAG, "log out and go to first activity");
                    Intent intent = new Intent(HomePage.this,
                            LoginPage.class);
                    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                  /*  intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |   
                                       Intent.FLAG_ACTIVITY_CLEAR_TASK);*/
                    startActivity(intent);
                    finish() // finish this activity 

                }
            });