2013-07-03 36 views
1

嗨,我有一個應用程序 A是從我創建B活動的發射器活動。從B我想回到A而不刪除B的實例(所以沒有完成),那麼我想創建一個B的新實例,我們稱它爲B2。從A我想能夠顯示B或B2而不重新創建它們。 再次強調,B,B2是相同的類只是不同的實例。開始現有的Android活動

的B時,我想去一個我想用

的,但我認爲它是一個錯誤,因爲它會清除其他實例。 我必須在案件中使用什麼意圖?在c#windows應用程序中我們會做B.hide(); A.show()。那麼從A我們可以做 A.hide(); B.SHOW()或B1.show();我怎麼能在android中做到這一點?

+1

您的設計是有缺陷的。您不應該嘗試創建同一個活動的兩個實例。相反,使用intent extras(或其他一些機制)將數據傳遞給實例。 C#(Windows)和Android是非常不同的野獸。 – Simon

+0

我想提供一些信息。其聊天應用程序。所以A是主要活動,B,B1是聊天室。顯然我希望用戶能夠切換聊天室。所以用戶在A中,然後進入聊天室B,然後我要他回到A去B1,但是不關閉B,以便他稍後可以返回。不能這樣做? – user1855793

+0

所以...爲什麼你不能使用相同的活動來顯示不同的聊天窗口?好像你只會說「_切換到這個對話_」,這意味着切換顯示的數據。 – jahroy

回答

0

如果B是一個Activity,則不能有兩個不同的實例。

你可以有兩種不同的活動來延伸同一個班級,但你已經表示你不想要那樣做。

您需要找到一種方法來更改B的外觀和行爲,而不是創建新的實例。

請考慮閱讀關於Activity Lifecycle的看法。

0

使用FLAG_ACTIVITY_REORDER_TO_FRONT

從DOC

如果傳遞給Context.startActivity()的意圖設置,這個標誌將 導致啓動的活動被帶到其任務的 的前歷史堆棧,如果它已經在運行。

+0

我有一個android:launchMode =「singleTask」。你提到的國旗適用於B前往A(它不通過創建)。但它不適用於A回到B.它開始一個新的活動,並通過創建。我有B,B1在活動的數組列表中,因此我想選擇一個並打開它 – user1855793

+0

@ user1855793 - 這聽起來像是你真的想要對抗活動生命週期。看起來像一個非常糟糕的主意。 – jahroy