2013-04-28 21 views
5

我的應用程序在主屏幕上顯示大量圖像。用戶可以通過觸摸圖像查看有關產品的更多信息。主屏幕片段被隱藏並且產品細節片段變得可見。通過點擊後退鍵,主屏幕片段再次可見。爲什麼onResume()在隱藏片段中調用?

片段transacion是實現如下:

​​

一切工作正常,但如果用戶openes在產品細節片段共享對話框(標準Android份額意圖),並通過單擊後退關閉對話框鍵。出於某種原因,主屏幕片段(隱藏)中的onResume方法被調用。 我通過在主屏幕片段添加以下代碼到的onResume方法解決了這個問題:

super.onResume(); 
    if(this.isHidden()){ 
     Log.d("tab","dont resume tab0fragment because it is hidden"); 
     return; 
    } 

這工作得很好,但問題是:爲什麼是的onResume()調用隱藏的片段,當用戶關閉在另一個片段共享對話框?

回答

3

隱藏的片段仍然遵循片段生命週期。看看documentation的流程圖。 User navigates backwards or the fragment is removed/replaced.導致onDestroyView()被調用,其中The fragment returns to the layout from the back stack,這是您的主屏幕片段所在的位置。