2011-05-27 56 views
1

我試圖檢測我的應用程序是否因多任務而變得活躍並顯示對話框。Android - 從多任務處理中檢測「應用程序變得活躍」

用例是這樣的:用戶正在使用的應用程序 - >點擊主頁按鈕 - >請問什麼 - >用戶在應用水龍頭再次

正如預期的那樣,最後活動的用戶是在正在顯示。

我想在發生這種情況時顯示一個對話框。我用onRestart()相同和它的作品。唯一的問題是,即使用戶在應用程序中進行了一些活動,然後再次點擊,對話框也正在顯示。

我經歷了幾次活動生命週期,但找不到解決方案。有任何想法嗎?

回答

0

我通過在onStop()中的共享首選項中設置一個標誌並在onDestroy()中清除它來實現此目的。

然後我重寫了Back按鈕來清除標誌,只要它被按下。這解決了我所說的問題。

現在在onRestart()中,如果標誌爲真....我顯示對話框。

我知道這不是最優雅的解決方案,但做的工作!希望這有助於某人。

0

那麼,您可以使用Determining the current foreground application from a background task or service中概述的技術來告訴前臺應用程序:查找getForegroundApp。你可以運行一個定時器來定期檢查應用程序是否爲前景,如果沒有,那麼在適當的延遲之後設置一個變量(以確保在切換活動時不會碰到錯誤的順序)。清除onStart中的變量,如果您曾經調用過活動的onCreate,那麼您知道該應用剛剛變爲活動狀態。