2013-04-02 70 views
1

我在android中有一個問題。 如果我的活動類與外部庫進行交互。我正在處理的這個庫必須在應用程序進入後臺或返回前臺時執行一些進程。Android活動在背景中

有什麼方法可以知道應用程序何時進入後臺。

注:我不想在活動中做任何事情。我不想在調用onPause時發送回調函數庫。

感謝

回答

0

覆蓋的onPause活動的方法,在onPause被調用時,活動將BACKGROUD

+1

哦,請閱讀說明 – Developer

3

如果我明白你的問題,你可以使用Application.registerActivityLifecycleCallbacks和實現自己的Application.ActivityLifecycleCallbacks

喜歡的東西:

class myActivityLifecycleHandler implements ActivityLifecycleCallbacks{ 
    // Methods implementation here 
} 

yourActivity.getApplication().registerActivityLifecycleCallbacks(new myActivityLifecycleHandler()) 
+1

非常感謝,但是這是API 14和更高 我在較低版本的工作:) – Developer

+1

我有同樣的問題,老實說,我認爲這是不涉及的唯一解決方案在onStart(),onStop等編寫代碼。 一個解決方案可以做一些事情,如下所示(在非接受的答案中):http://stackoverflow.com/questions/3183932/androidhow-to-check如果應用程序正在運行在後臺 ..但我認爲這是可行的,只有當你不必連續檢查 –

+0

謝謝,但不幸的是,在這種情況下,我必須連續檢查..因爲我想做一些活動,一旦活動發送到後臺:) – Developer

0

你可能在一些文件編寫應用程序時來到後臺。

然後你的圖書館可能會花時間檢查這個文件。

0

Application.registerActivityLifecycleCallbacks確實是您想要使用的正確api。不幸的是它確實是API14 +,因此您有以下選項:

使用this library來實現activitylifecycle回調。您將不得不在您正在開發的應用程序中擴展您的活動,但是無論您需要的API14支持如何,都必須執行某些操作。

執行此庫後,您可以在回調中創建一個int計數。每個活動的每個onStart()onStop()回叫可以遞增和遞減此計數。 在應用程序打開時計數將從0到> 1,並在應用程序關閉/背景中從1到> 0。當這些條件滿足時,你可以打電話給你的圖書館。

請記住,當您爲應用程序創建背景時,操作系統可以在任何時候關閉它。如果您有任何數量的網絡或任何長時間,請啓動一項服務,儘快處理所有服務。