我分鐘SDK 21的應用,靶25使用:android.app.DialogFragment
和android.support.v7.app.AppCompatActivity.
從片段onBackPressed顯示活動兩次
初始Activity
是一個啓動器可以啓動3個活動的1和1 DialogFragment
。 DialogFragment
可以依次啓動Activity
(這是3個活動之一)。我遇到的問題只是關於正在加載的DialogFragment
以及該片段,然後加載一個應用程序,然後返回到啓動器。
當Fragment
立即返回到啓動程序(不加載Activity
)時,這工作正常。我可以檢測到Fragment
是通過啓動器加載的,onBackPress()
可以處理它。
然而,當Fragment
加載另一個Activity
然後onBackPress()
用於返回到Fragment
然後onBackPress()
用於返回到啓動程序,我有一個問題。目前處理這種情況的方式是Fragment
通過Intent
使用標記FLAG_ACTIVITY_CLEAR_TASK
和FLAG_ACTIVITY_NEW_TASK
和FLAG_ACTIVITY_CLEAR_TOP
(這似乎是某人類似問題的解決方案)加載啓動器。我試過這些標誌的其他變體,也沒有這些標誌。我也嘗試在DialogFragment
中使用這種情況onBackPress()
而不使用Intent加載Activity
,並且應用程序終止,我需要它返回到啓動器。
在這種情況下,使用這些標誌,當我返回啓動程序時,啓動程序顯示然後清除然後重新顯示(在另一個onBackPress()
上,應用程序然後正確終止)。問題是啓動器顯示兩次。我認爲首先顯示的啓動器是加載的原始拷貝,然後它被替換爲新的拷貝。我還沒有找到加載啓動程序原始副本(在這種情況下)的方法(如果實際上發生了這種情況)。如上所述,這是一個DialogFragment
。
我該如何解決這個問題,以便在這種情況下啓動器活動不會顯示兩次?
發佈您嘗試過的代碼請 –
您是如何創建DialogFragment的?在這裏發佈代碼。 – Dhiren
向我們展示架構。這應該是一個簡單的解決方案,但如果錯誤地執行了活動的步驟和調用以及處理回來事件,則會出現這種情況。幾年前我有類似的問題 – ZooS