2013-10-18 48 views
1

我有一個Android應用程序與多個活動。主要活動通過網絡進行通信,並可根據其通過網絡接收到的命令啓動或關閉各種其他活動。當一個活動被解僱時,我不想finish()它,只是將其向下移動,因此它不再是最重要的活動。我真正需要的是一個FLAG_ACTIVITY_REORDER_TO_BOTTOM,但沒有這樣的事情。有人可以請解釋FLAG_ACTIVITY_PREVIOUS_IS_TOP

有一個叫FLAG_ACTIVITY_PREVIOUS_IS_TOP意圖標誌和意味着類似的東西,但我不明白的說明:

「如果設置這個意圖被用於從推出的新活動 現有活動,則當前活動不會被計爲頂部 活動,用於決定新意向是否應交付給頂部 而不是開始新的活動。以前的活動將用作頂部 ,並假設被當前活動 將立即完成自身」

可能有人請解碼,對於我來說,如果它不是我想要的是有一些方法來告訴一個活動本身淹沒低於前一個?

+0

這可能會導致問題,因爲如果需要資源,android可以完成/停止啓動但暫停的應用程序。 –

+0

這不會是一個問題。但是,讓我們來回顧一下 - 讓主要活動強迫其他活動關閉自己的好方法是什麼? – user316117

+0

查找finish()和finalize()的調用層次結構。在不瞭解你的應用程序的情況下,我可能會說只是用清理/關閉調用來包裝它們,將其公開化並讓主應用程序的調度表調用它來關閉它。如果您在應用程序之間進行了同步,則必須對其進行相應處理。只是好奇,爲什麼你必須做這樣的單獨的應用程序? (或者他們是否想要啓動/停止其他人的應用程序?) –

回答

0

這是不可能的。這些活動是堆疊的,你不能把一個放回另一個之下。這聽起來像你可能想創建一個擴展Android的android.app.Application的類。

我在網上發現了這個教程,它看起來不錯。祝你好運。

Extending Android's android.app.Application tutorial

0

不能低於某個活動的活動轉移到了Android回堆棧。在後面堆棧中移動活動的唯一方法是在其上打開另一個活動。您可以通過使用FLAG'singleTop'創建單個活動實例來移動頂部的活動,這樣您的活動將移動到另一個活動的頂部,並且只有單個活動實例將在堆棧中。有關活動

更多信息返回堆棧和標誌可here.

通過這個信息和所有的疑慮都會得到有關回來清除棧。