我正在使用此代码重新启动我的活动:
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);
但是我需要访问我的意图来获取他所有的参数(正确加载活动所需的参数)。
答案 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);