为什么我无法重启使用REORDER_TO_FRONT标志启动的活动?

时间:2012-11-19 18:02:48

标签: android android-intent

我正在使用此代码重新启动我的活动:

public void refreshActivity()
{
    final Intent intent = this.getIntent();
    this.overridePendingTransition(0, 0);
    intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
    this.finish();

    this.overridePendingTransition(0, 0);
    this.startActivity(intent);
}

它运作得很好。但是如果我当前的Activity使用FLAG_ACTIVITY_REORDER_TO_FRONT启动,它将无法启动。

我找到this:但我认为这不是我的情况,因为我没有用FLAG_ACTIVITY_REORDER_TO_FRONT重新启动当前活动。

更新 我可以通过明确告诉活动的名称来重启我的活动,如下所示:

    this.finish();

    final Intent intent = new Intent(this, InfoActivity.class);
    this.startActivity(intent);

但是我需要访问我的意图来获取他所有的参数(正确加载活动所需的参数)。

1 个答案:

答案 0 :(得分:0)

在致电FLAG_ACTIVITY_REORDER_TO_FRONT之前,您应该清除startActivity()标志。像这样:

final Intent intent = this.getIntent();
intent.setFlags(intent.getFlags() & ~Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
this.overridePendingTransition(0, 0);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
this.finish();

this.overridePendingTransition(0, 0);
this.startActivity(intent);