2017-05-31 26 views
0

我用火鳥雲消息在後臺接收數據,然後一個對話框(與Theme.AppCompat.Dialog爲風格的新活動)將出現。我的問題是每次在後臺顯示MainActivity的表面。是否可以隱藏MainActivity而不終止它?有人可能有一個想法?隱藏MainActiviy時DialogActivity開始

當我在MainActivity的清單中設置值 android:noHistory="true" 我看起來不錯,但通知是在應用程序歷史記錄中。這看起來壞

我的意思是,當活動是在背景下,在MainActivity仍可見

Example Picture

+0

通過在style.xml中違背樣式來設置背景顏色 –

+0

感謝您的回覆,但MainActivity仍然在後臺打開。它應該保持在後臺。 – plex88

+0

offcourse mainactivity將在後臺。 –

回答

0

當你使用的是活動作爲一個對話框,您MainActivity仍然在活動堆棧中暫停州。但是,即使您將對話活動全屏顯示,也無法保證MainActivity會保持活動狀態。如果操作系統需要其他進程的內存,OS可以隨時終止活動。 This is stated on the Activity reference

相反,你可以嘗試這些替代方案之一:

  1. 使用DialogFragment,而不是一個新的活動
  2. 使用正片段,將在運行時的片段,讓用戶參與對話片段之間切換和主要片段。
  3. 使用的FrameLayout,顯示/隱藏相同的主活動佈局中的對話UI。
+0

感謝您的回覆,但我沒能開始從服務類DialogFragment因爲是必須的DISPLAYMANAGER沒有訪問。這似乎只能從活動工作 – plex88

+0

你之前還沒有提到一個服務類。如果你的意思是Android服務,那有什麼留給你是(https://stackoverflow.com/questions/36525508/communication-between-android-services-and-activities)來觸發[服務和活動之間的交流]對話框的顯示。 –

0

我認爲正在尋找這種方法

/* When {@link #FLAG_DIM_BEHIND} is set, this is the amount of dimming 
    * to apply. Range is from 1.0 for completely opaque to 0.0 for no 
    * dim. 
    */ 

dialog.getWindow()的getAttributes()dimAmount = 1F。;