如何在finish()中启动活动

时间:2014-08-13 16:40:46

标签: java android android-activity activity-lifecycle

我想根据条件在finish()开始另一项活动。我在onDestroy()中使用了相同的代码,但我认为从生命周期的角度来看,这不是正确的地方。

(活动可能会被销毁,但用户没有主动离开。)

以下代码没有任何效果:

@Override
public void finish() {
    if (mCondition) {
        Intent intent = new Intent(this, OtherActivity.class);
        startActivity(intent);
    }
    super.finish();
}

为什么它不起作用,有替代方案吗?

2 个答案:

答案 0 :(得分:1)

我认为最好的选择是开始新活动,然后完成当前的活动:

if (mCondition) {
    Intent intent = new Intent(this, OtherActivity.class);
    startActivity(intent);
    finish();
}

答案 1 :(得分:0)

我已经使用了自己,并且工作正常

   public void ToBeClosed()
    {
        Intent a = new Intent(context,NewActivity.class);
        startActivity(a);
        OldActivity.this.finish();
    }

并使用if语句正文中的函数

 if (mCondition) { ToBeClosed(); }