从android中的同一个活动开始一个活动的新实例

时间:2018-05-24 12:02:42

标签: android android-intent android-activity instance

我正在尝试从活动的同一个类中创建一个活动的新实例。例如,我有一个名为Settings的活动。

Intent intent = new Intent(Settings.this, Settings.class);
intent.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("ShowBookmarks", true);
startActivity(intent);

在我的AndroidManifest中,我没有设置任何启动选项,尽管我尝试过使用singleTop和其他几个。

目标是在相同的控件(Recycler视图等)中显示不同的数据,然后可以单击返回以显示以前的数据。

2 个答案:

答案 0 :(得分:0)

  • 创建两个片段或者您可以使用一个片段进行管理意味着使用一个片段。

  • 将片段添加到具有不同名称的backstack(addToBackStack(String name))中。

  • 在onBackPressed()方法中弹出片段。

它会按预期工作。

  

注意:您所有与活动相关的代码都会移至Fragment中。

答案 1 :(得分:0)

  

Intent intent = new Intent(Settings.this,Settings.class);

我不知道这是否可能重新考虑您的策略

但是,如果您想重新开始活动:

你不必写那些长篇大论。

只需从任何地方拨打onResume();

  

我这样做。

此外,

API级别11 以来,您可以调用recreate();的{​​{1}}方法。