如何重新打开一个非常相同的活动/如何保持活动活着



我有一个主活动,在那里我开始一个新的活动

Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivity(intent);

返回到主活动,我使用finish()方法。

我的问题是:如何可能切换到非常相同的第二个活动,而不开始一个新的?我认为finish()方法杀死第二个活动,但它仍然是如何工作的代码告诉他(计时器倒计时和声音出现)在背景中。所以有可能切换回屏幕上的第二个活动吗?

在过去,我使用了一个TabWidget也与活动一起工作,所以它必须在某种程度上是可能的!还是我必须使用Fragments?但如果我使用碎片,我也会有同样的问题:如何让碎片存活到我不得不再次使用它?

我希望你能帮我做这件事,那太好了。我将非常感激。

启动SecondActivity.class时需要使用Intent.FLAG_ACTIVITY_REORDER_TO_FRONT

它将告诉Android在backstack中搜索SecondActivity的实例。如果找到这样的实例,它将把它移到堆栈的顶部。

还请记住,如果你调用finish()在你的SecondActivity, REORDER_TO_FRONT标志实际上不会做任何事情,因为你永远不会有活动的实例

如果您的活动是活的,您可以通过以下代码恢复它:

    Intent openMainActivity= new Intent(SomeActivity.this, Main.class));
    openMainActivity.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
    startActivity(openMainActivity);

或者您可以使用此标志清除其他活动:

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

最新更新