我想完成或杀死其他活动的活动

时间:2015-06-23 08:00:21

标签: android

我有6项活动:

mainsecondthirdfourthPersonalDetailsNewUser

当我进入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;
}

2 个答案:

答案 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;

}