2012-09-07 93 views
0

在我的Android应用程序中,我编写了一个下面的代码来清除活动的堆栈,但此代码无法正常工作,所以我请求您为此提供工作片段。Android应用程序堆栈未清除

Intent intent = new Intent(UserProfile.this, Login.class) 
     .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
finish(); 
startActivity(intent); 

感谢你

回答

0

如果目前的活动是和你想推出B活动,另外,C和d暂停的背景下,FLAG_ACTIVITY_CLEAR_TOP将完成C和d而不是A.

有一种变通方法可以让你完成一项活动。创建一个“静态”处理程序,它可以在A活动中接收消息时执行finish(),然后在B活动启动时使用A中的静态处理程序发送消息。

0

在API级别11新旗意向加入:Intent.FLAG_ACTIVITY_CLEAR_TASK试试这个标志。例如:

Intent intent = new Intent(UserProfile.this, Login.class) 
     .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); 
finish(); 
startActivity(intent); 
+0

嗨harshit,感谢您的重播。我的应用最低API级别是9,我无法将其改为api级别11,请帮助我在api级别9中实现此目标 – Dayanand

0

您可以使用ActivityName.this.finish()。

Intent intent = new Intent(UserProfile.this, Login.class) 
     .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 
    YourActivityName.this.finish();