2011-08-18 109 views
2

我有一個關於Android應用程序狀態的問題。我想知道我能夠檢查應用程序是活着還是死了,可見還是背景。我需要根據廣播接收器的應用狀態做出決定。Android檢查應用程序狀態

在此先感謝..

+1

如果您可以提供有關「決定」的詳細信息,也許我們可以幫助您。 – CommonsWare

+0

簡單地說,如果應用程序活着,我想跨過啓動過程,然後跳轉目標活動。我想知道如何檢查應用程序狀態。 – barisatbas

回答

1

基本上,當您收到廣播時,您的應用程序將保證運行。這是因爲沒有首先啓動應用程序進程就無法收到廣播。如果在發送廣播時沒有組件處於活動狀態(如活動狀態),則僅爲了處理此廣播而啓動應用程序進程。

至於其他部分,檢測是否任何活動當前是活動的和/或可見 - 我還沒有看到這個任何API調用。可能有一些解決方法(如手動將計數器保存爲單例),但據我所知,並沒有直接支持這一點。雖然我可能是錯的。

+1

不知道具體活動的狀態,我無法決定是否顯示通知。例如,如果「ChatActivity」正在運行,則不允許通知,如果它沒有運行,那麼我必須顯示通知來提醒用戶。這些工作應該在'BroadcastReceiver'中完成。有沒有什麼好的方法呢?謝謝! – gone

0

在Android的,標準的做法是跟蹤「改變」的各種狀態。您可以閱讀關於此here的更多信息。在特定的生命週期相關方法中,您可以根據需要執行特定的操作。

+0

這不是一個好的答案,我不需要跟蹤活動生命週期,我需要檢查應用程序狀態:活着或死亡,可見或不可見。或應用程序至少有一個活動存活? – barisatbas

2

您確定您的「應用程序」是「活着」通過看,如果你在你的「啓動程序」加載的數據存在。如果有,請使用它。如果沒有,請運行「啓動過程」。

+0

好吧,這是一個解決方案,但我想知道Android是否有API級別的支持。謝謝。 – barisatbas

+2

@ baris3437:你不需要「API級別的支持」。它是普通的Java,檢查是否有一個靜態數據成員持有你從「啓動過程」中緩存的任何內容是否爲「null」。 – CommonsWare