Android 如何重新打开一个非常相同的活动/如何使活动保持活动状态?

Android 如何重新打开一个非常相同的活动/如何使活动保持活动状态?,android,android-intent,android-fragments,android-activity,Android,Android Intent,Android Fragments,Android Activity,我有一个主要的活动,在那里我开始一个新的活动 Intent intent = new Intent(MainActivity.this, SecondActivity.class); startActivity(intent); 为了返回到主活动,我使用finish()方法 我的问题是:如何在不开始新的活动的情况下切换到相同的第二个活动?我认为finish()方法会杀死第二个活动,但它仍然可以工作,代码在后台告诉他(计时器倒计时并发出声音)。那么,是否可以切换回屏幕上的第二个活动 在过去,我使

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

Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivity(intent);
为了返回到主活动,我使用finish()方法

我的问题是:如何在不开始新的活动的情况下切换到相同的第二个活动?我认为finish()方法会杀死第二个活动,但它仍然可以工作,代码在后台告诉他(计时器倒计时并发出声音)。那么,是否可以切换回屏幕上的第二个活动

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

我希望你能帮我,那太好了。
我将非常感谢。

如果您的活动仍处于活动状态,您可以通过以下代码恢复活动:

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

启动
SecondActivity.class
时,需要使用
Intent.FLAG\u ACTIVITY\u REORDER\u to\u FRONT

它基本上会告诉Android在后台搜索
SecondActivity
的实例。如果找到这样的实例,它将把它移动到堆栈的顶部


还请记住,如果您在第二个活动中调用
finish()
,则
重新排序到\u-FRONT
标志实际上不会起任何作用,因为您永远不会有活动的活动实例。

感谢您的回答,这对我帮助很大,但当我使用android“后退按钮”(左角的箭头)时第二项活动似乎是自动完成的。我可以更改它吗?如果覆盖onBackPressed()方法,则可以更改,但通常这样做不是一个好主意。为什么你坚持重复使用相同的活动?是不是非常困难和复杂,因此需要很长时间来实例化?第二个活动有一个倒计时,当用户返回到主活动时,这也应该在后台运行,因此我不能用相同的变量重新创建第二个活动。而不是使用onSaveInstanceState()和onRestoreInstanceState()-如果我理解正确,它们将非常适合您的情况:)请在此处阅读更多信息:但是onSaveInstanceState()将停止活动,对吗?那么倒计时也会停止,直到用户返回到第二个活动?