【问题标题】:Why I can't restart activity launched with REORDER_TO_FRONT flag?为什么我无法重新启动使用 REORDER_TO_FRONT 标志启动的活动?
【发布时间】:2016-03-30 17:31:18
【问题描述】:

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

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);

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

【问题讨论】:

    标签: android android-intent


    【解决方案1】:

    您应该在调用startActivity() 之前清除FLAG_ACTIVITY_REORDER_TO_FRONT 标志。像这样:

    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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多