在不破坏活动的情况下切换活动

在不破坏活动的情况下切换活动

问题描述:

我是android新手,所以不知道可以解决这个问题。在不破坏活动的情况下切换活动

我创建了一个应用程序,其中包含两个活动,将其命名为第一个和第二个活动。 第一个活动启动模式是singleTask,第二个活动启动模式是标准模式。 现在,当我从第二个活动切换到第一个活动时,我不想销毁第二个活动。 但在这种情况下,它正在被破坏。 所以任何人都可以帮助我建议如何实现从第二个活动切换到第一个没有 摧毁第二个活动的场景。

+1

你是否从一个活动切换到另一个活动时添加了完成()?如果是,则删除该行。 –

+0

@SnehaSarkar:不,我没有使用finish(),而是调用。这就是我打电话的方式。 Intent intent = new Intent(Second.this,First.class); startActivity(intent); –

+0

您的活动处于堆叠状态。当你启动应用时,堆栈包含'FirstActivity'。当'FirstActivity'启动'SecondActivity'时,'SecondActivity'的实例被添加到堆栈中。如果您现在想从'SecondActivity'转到'FirstActivity',那么'SecondActivity'会发生什么?它应该去哪里? –

没有必要破坏这个任何活动,我想是的。只是实现这个:在您的的OnCreate

Intent intent=new Intent(ActivityOne.this,ActivityTwo.class); 
startActvity(intent); 

() actvity的方法

这是因为活动之一是单一的活动。 Read here。据此

“singleTask”和“singleInstance”活动只能开始一项任务。它们始终处于活动堆栈的根部。而且,该设备一次只能保存一个活动实例 - 只有一个这样的任务。

要避免这种情况,请将活动1的启动模式更改为标准。

+0

其实我的第一个活动是我的应用程序的主要活动。 如果我将这个活动标准化,那么当我将 从第二个切换到第一个时,它总是被创建。但我不想打电话来创建第一个活动。相反,我想打电话给NewIntent。 这就是为什么我用singleTask launchmode创建它。 –

+0

在这种情况下,当第一个活动从第二个活动开始时,它将完成第二个活动。 – seema

通过使用finish(),您可以打开想要打开的新活动,而不需要使用finish()当前/上一个活动。

一旦您在没有finish()之前打开多个活动,操作系统将自动维护活动堆栈。