如何重新打开完全相同的 activity / 如何让 activity 保持活力?
How to reopen a very same activity / how to keep an activity alive?
我有一个主要的 activity 并且在那里我开始了一个新的 activity
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivity(intent);
回到主要部分 activity 我使用了 finish() 方法。
我的问题是:如何切换到同一秒 Activity 而不开始一个新秒?我认为 finish() 方法杀死了第二个 Activity,但代码在后台告诉他(计时器倒计时并发出声音)的方式仍然有效。那么是否可以切换回屏幕上的第二个 Activity?
过去我使用过 TabWidget,它也适用于活动,所以它一定可以通过某种方式实现!?还是我必须使用片段?但是,如果我使用 Fragments,我会遇到同样的问题:How to keep the Fragment alive till I have to use it again?
我希望你能帮我解决这个问题,那太好了。
我将不胜感激。
如果您的 activity 还活着,您可以通过以下代码恢复它:
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_ACTIVITY_REORDER_TO_FRONT
。
它基本上会告诉 Android 在后台搜索 SecondActivity
的实例。如果找到这样的实例,它将把它移到堆栈的顶部。
另外请记住,如果您在 SecondActivity 上调用 finish()
,REORDER_TO_FRONT
标志实际上不会做任何事情,因为您永远不会有实时实例Activity.
我有一个主要的 activity 并且在那里我开始了一个新的 activity
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivity(intent);
回到主要部分 activity 我使用了 finish() 方法。
我的问题是:如何切换到同一秒 Activity 而不开始一个新秒?我认为 finish() 方法杀死了第二个 Activity,但代码在后台告诉他(计时器倒计时并发出声音)的方式仍然有效。那么是否可以切换回屏幕上的第二个 Activity?
过去我使用过 TabWidget,它也适用于活动,所以它一定可以通过某种方式实现!?还是我必须使用片段?但是,如果我使用 Fragments,我会遇到同样的问题:How to keep the Fragment alive till I have to use it again?
我希望你能帮我解决这个问题,那太好了。 我将不胜感激。
如果您的 activity 还活着,您可以通过以下代码恢复它:
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_ACTIVITY_REORDER_TO_FRONT
。
它基本上会告诉 Android 在后台搜索 SecondActivity
的实例。如果找到这样的实例,它将把它移到堆栈的顶部。
另外请记住,如果您在 SecondActivity 上调用 finish()
,REORDER_TO_FRONT
标志实际上不会做任何事情,因为您永远不会有实时实例Activity.