2016-12-27 103 views
0

我是android新手,所以不知道可以解決這個問題。在不破壞活動的情況下切換活動

我創建了一個應用程序,其中包含兩個活動,將其命名爲第一個和第二個活動。 第一個活動啓動模式是singleTask,第二個活動啓動模式是標準模式。 現在,當我從第二個活動切換到第一個活動時,我不想銷燬第二個活動。 但在這種情況下,它正在被破壞。 所以任何人都可以幫助我建議如何實現從第二個活動切換到第一個沒有 摧毀第二個活動的場景。

+1

你是否從一個活動切換到另一個活動時添加了完成()?如果是,則刪除該行。 –

+0

@SnehaSarkar:不,我沒有使用finish(),而是調用。這就是我打電話的方式。 Intent intent = new Intent(Second.this,First.class); startActivity(intent); –

+0

您的活動處於堆疊狀態。當你啓動應用時,堆棧包含'FirstActivity'。當'FirstActivity'啓動'SecondActivity'時,'SecondActivity'的實例被添加到堆棧中。如果您現在想從'SecondActivity'轉到'FirstActivity',那麼'SecondActivity'會發生什麼?它應該去哪裏? –

回答

1

沒有必要破壞這個任何活動,我想是的。只是實現這個:在您的的OnCreate

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

() actvity的方法

1

這是因爲活動之一是單一的活動。 Read here。據此

「singleTask」和「singleInstance」活動只能開始一項任務。它們始終處於活動堆棧的根部。而且,該設備一次只能保存一個活動實例 - 只有一個這樣的任務。

要避免這種情況,請將活動1的啓動模式更改爲標準。

+0

其實我的第一個活動是我的應用程序的主要活動。 如果我將這個活動標準化,那麼當我將 從第二個切換到第一個時,它總是被創建。但我不想打電話來創建第一個活動。相反,我想打電話給NewIntent。 這就是爲什麼我用singleTask launchmode創建它。 –

+0

在這種情況下,當第一個活動從第二個活動開始時,它將完成第二個活動。 – seema

0

通過使用finish(),您可以打開想要打開的新活動,而不需要使用finish()當前/上一個活動。

一旦您在沒有finish()之前打開多個活動,操作系統將自動維護活動堆棧。