活动从停止状态恢复时,意图不刷新其值

时间:2019-07-06 13:04:50

标签: android-studio android-fragments android-intent android-fragmentactivity intentfilter

我有2个活动A和B。我的活动A在清单文件中声明为singleInstance。我不想每次从A调用活动B时都重新创建它,因为它包含一些我不想每次都重新加载的数据。因此,我正在使用intent.setFlags(Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY);从A启动活动B。 我正在从A到B发送额外的String数据。第一次它可以正常工作。我的问题是第二次我再次使用一些新的String数据启动活动B(从其他目标视图或A中的按钮启动B)时,活动B没有使用getIntent().getStringExtra("MY KEY")接收到新的String数据。

通过做一些研究,我发现在这种情况下,当A第二次启动B(当B已创建并在后台停止时)时,活动A不会再次发送新的Intent对象来启动活动B。操作系统将使用堆栈历史记录中的活动B。

所以我想知道如何在B中接收新的Intent对象(用于从A接收与新的启动目标相对应的新的String数据)。

我发现1个解决方案-这样的onNewIntent(Intent intent)可以接收到一个新的Intent对象

  protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    if (intent!=null){
        setIntent(intent);

    }
}

但是我对onNewIntent(Intent intent)方法感到困惑。因此,我想知道在这种情况下如何使用此方法,或者有没有更好的方法可以做到这一点。

0 个答案:

没有答案