我有一个主活动,在那里我开始一个新的活动
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);