2014-03-26 53 views
0

我想顯示一條消息給用戶一些異步事件。例如,警報到期。我想顯示一個在任何活動上顯示的彈出窗口或對話框,此時它是前景(並且這可以是其他應用程序活動),將當前活動留在背景中。如何顯示另一個活動的彈出窗口

有沒有辦法在Android中這樣做?

enter image description here

回答

4

首先,你會被告知,這是一個糟糕的事情,這是對Android的方式做事。用戶不喜歡這樣。而通知區域則是更好的方式。

也就是說......有辦法做到這一點...


一個Toast將顯示無論哪個活動是在屏幕上。所以你可以設置一個後臺線程(或更好的Service),它將在Toast中顯示你的信息。這對你來說可能夠好了。

您可能會發現它有用看在some Toast source code here

此處還有一個關於如何通過用您自己的默認View替換自定義Toast佈局來創建佈局的不錯頁面。 (我沒有這樣做,但它看起來很有趣):


另一種選擇是困難得多,而且是顯示系覆蓋窗口。不幸的是,你必須做很多工作才能正確設置。

下面是我用得到它的工作了幾個相關問題:

每一個都有鏈接到其他許多人 - 有系統重疊問題在這裏。

但要記住的事情:

  1. 在過去,你可以把在上面系覆蓋,並通過下面的活動發送 接觸。這已不再可能, 所以很多答案現在已過時。
  2. 您可能需要使用 附帶提供的示例中的標誌來獲得您正在瞄準的效果。並非所有示例都使用相同的 標誌,因此每個解決方案 的工作方式都存在一些細微差異。

再說,我也相信,通知區域中使用一個更好的UI模式的,所以我建議你試試先。這樣做比較容易,我們大多數人都期望這種行爲而不是彈出式的行爲。

彈出的問題是,它可能會中斷正在觀看的電影。或者我正在玩的遊戲。

0

是的,我已經創造了收入事件的兩個對話框的背景和前景