2016-07-15 125 views
1

我用這行代碼來啓動我的應用程序 intent.setFlags(805306368);它完美啓動應用程序,並恢復它,如果它在後臺運行。但是,整數805306368是什麼意思? 它如何恢復我的應用程序,如果它正在運行。有誰知道。這是什麼意思intent.setFlags(805306368)在android

回答

3

805306368相當於六角0x300000000x30000000和用於打開所述Intent與以下標誌:

Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_SINGLE_TOP 

因此,它等價於使用上述組合或0x30000000

從Android的文檔FLAG_ACTIVITY_SINGLE_TOPFLAG_ACTIVITY_NEW_TASK

FLAG_ACTIVITY_SINGLE_TOP = 0x20000000 
FLAG_ACTIVITY_NEW_TASK = 0x10000000 

所以,在0x30000000

而且組合results,如docs提到的新任務標誌即FLAG_ACTIVITY_NEW_TASK用於實現以下行爲:

當使用此標誌時,如果一個任務已經在運行激活如果你現在開始,那麼一個新的活動將不會開始;相反,當前的任務將簡單地被帶到與上次的狀態後,屏幕的正面。

和單頂標誌即FLAG_ACTIVITY_SINGLE_TOP用於實現以下行爲,如docs提到:

如果設置,如果活動已經在歷史堆棧頂部運行,則不會啓動活動。

因此,這些標誌有助於恢復您的活動並阻止開啓新活動。

+0

優秀答案@Ashish ... +1 – Hackerman

+0

感謝您的好解釋 – Adarsh