1

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

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 启动的,它就不会启动。

我发现了这个:但我认为这不是我的情况,因为我没有使用 FLAG_ACTIVITY_REORDER_TO_FRONT 重新启动当前活动。

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

    this.finish();

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

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

4

1 回答 1

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);
于 2016-03-30T09:31:18.403 回答