我有6项活动:
main
,second
,third
,fourth
,PersonalDetails
和NewUser
。
当我进入NewUser
活动时,我使用的代码如下:
personalDetails.finish();
但它仍未清除堆栈中的personalDetails
活动。下面是我的代码,我只想清除堆栈中的特定活动。
在全球范围内,我已声明:
PersonalDetails personalDetails;
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
int id = item.getItemId();
switch (id)
{
case R.id.action_view_cart:
personalDetails = new PersonalDetails();
personalDetails.finish();
Intent intentViewBookingCart = new Intent(this,FourthActivity.class);
intentViewBookingCart.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intentViewBookingCart);
finish();
break;
}
答案 0 :(得分:1)
根据Finish an activity from another activity, 第一种方式
在第一个活动中,声明一个这样的Activity对象,
public static Activity fa;
onCreate()
{
fa = this;
}
现在在另一个Activity中使用该对象来完成这样的第一个活动,
onCreate()
{
FirstActivity.fa.finish();
}
答案 1 :(得分:0)
您可以像这样
向您的Activity添加静态实例public class PersonalDetails extends Activity {
public static PersonalDetails sPersonalDetails;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
sPersonalDetails = this;
}
}
在你的下一个活动中:
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
int id = item.getItemId();
switch (id)
{
case R.id.action_view_cart:
PersonalDetails.sPersonalDetails.finish()
PersonalDetails.sPersonalDetails = null;
Intent intentViewBookingCart = new Intent(this,FourthActivity.class);
intentViewBookingCart.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intentViewBookingCart);
finish();
break;
}