2014-04-10 46 views
1

我想清除以前的所有活动堆栈并启动新的活动。但是当我按回控制键转到上一个活动时。我没有完成所有以前的活动。当我注销时,我想退出应用程序。 我用下面的标志:如何清除以前在Android中的活动的后备栈?

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" 

以下行添加,但有白屏推出新的活动之前。

我也将主题更改为半透明,但启动活动时,但它显示了一段时间的Android主页图标。

我不想使用:

moveTaskToBack(true); 

回答

0

只是设置此标志的原意,

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

再次出现白屏。 –

+0

此标志清除您以前的所有活动并开始新活动。 但不能明白你的意思。 –

+0

我同意你以前的所有活动。但在启动新的时候会出现白屏,然后会显示给用户一个新的活动。 –

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 

       } 
      }); 
+0

未出现白色屏幕,但先前的活动堆栈未被删除。在关键的前一个活动恢复,我还没有完成。 –