2016-09-08 21 views
0

我似乎無法找到任何方法來設置應用程序中單個活動的最大數量的實例。從本質上講,我希望它看起來喜歡它,如果它有2 max是:Android的最大活動背景數量的實例

甲 - >乙 - >乙

而且如果用戶試圖啓動另一個相同的活動的,它取代了最近的'B'卻一個人留下。但是,如果只有一個'B',那麼只需創建第二個'B'。只有當有兩個'B'活動時,它纔開始取代'B'。

有很多選項可以確保只有一項活動,如清除頂部和重新排序前端,但這似乎不可能。有沒有人試過這個?

+0

跟蹤B實例的數量。當用戶達到最大值時,通常會開始一個新的B,只需更新現有B的內容(如果它在前臺)或添加「FLAG_ACTIVITY_REORDER_TO_FRONT」(如果它不在前臺) 。或者,只能使用一個B,並使用碎片和背堆棧進行最大計數跟蹤。或者,只使用一個B,並自己處理BACK事件。 – CommonsWare

+0

除非im錯誤的活動在不使用時暫停。即如果您進入活動B活動A已暫停。我不認爲你可以有多個相同活動的運行,但你可以複製它們,所以有相同活動的克隆 – Tasos

回答

0

通常,創建Activity的多個實例非常難以管理,因爲您無法使用任何Intent標誌尋址或返回Activity的任何特定實例。我不知道您的應用程序或您的要求,但是您應該考慮使用以下某個想法重新構建:

  • 不要創建任何活動的超過1個實例。每次使用Intent.FLAG_REORDER_TO_FRONT重用現有實例。
  • 而是開始從BB的,只是重複使用的B相同的情況下,只是改變它的數據,讓您創建一個新的Activity(動畫轉換或其他)的幻覺
  • 創建Activity副本(擴展現有類的新類)並啓動它,以便代替具有B的2個實例,您有一個B實例和一個CopyB實例。