2011-07-19 148 views
2

每當應用程序激活/或開始運行時,我都必須運行一些後臺任務。假設你運行的應用程序,然後突然設備脫落或任何如何ü離開應用程序沒有正確停止,然後當你將再次啓動應用程序,顯然它將開始運行之前的狀態,然後才離開應用程序。當它重新啓動或激活時,我希望我的後臺任務完成。是否有任何函數每次啓動應用程序時都會調用,可以用來初始化這些後臺任務?如果沒有,那我該如何完成我的目的?需要幫助,請提前致謝.... !!!如何確定應用程序是否正在運行?

回答

1

每當從背景是,在最起碼它會運行的onResume()功能的應用程序返回:

@Override 
public void onResume(){ 
    //You have to call super.onResume(), otherwise an exception is thrown 
    super.onResume(); 

    // and then do whatever you want here. 
} 
0

是的,主要活動類別的OnCreate方法在應用程序啓動時被調用。

documentation -

當活動開始時調用。這是大多數初始化應該去的地方:調用setContentView(int)來擴充活動的UI,使用findViewById(int)以編程方式與UI中的小部件交互,調用managedQuery(android.net.Uri,String [],String,String [ ],字符串)檢索正在顯示的數據的光標等。

This問題可能會有所幫助。從接受的答案 -

無論您啓動應用程序還是恢復應用程序,都會調用OnCreate。
+0

嗯,你說得對,主要活動被稱爲每當應用程序啓動,但我的意思是當應用程序被激活....假設你運行的應用程序,然後突然設備下車或任何如何你離開了應用程序沒有正確地停止它,然後當你再次啓動應用程序時,顯然它將在退出應用程序之前從以前的狀態開始運行。當它再次啓動或激活時,我想要完成我的後臺任務。希望這次你明白我的意思...... – Junaid

+0

@junaid:那麼你應該編輯你的問題,幷包括這些信息。 –

+0

@ Sayem Ahmed:好的,我編輯了我的問題....但是,它可能是一個可能的解決方案?任何想法 ? – Junaid

0

好 - 有在Android SDK中提供沒有這樣的設施供您決定是否您的應用程序正在運行 - 這主要是因爲Android處理應用程序的方式。

例如 - 你說什麼意思,說應用程序是沒有運行?這是否意味着UI不可見,或者與應用程序相關的進程沒有運行?順便說一句,我希望你知道:

應用程序的生命週期!=應用程序進程的生命週期。

至於運行後臺任務,您可以使用AsyncTaskService類。

如果你擔心只有應用程序的可見一生中,你必須依靠利用的和onResume方法,以檢查標誌,你可以打開/關閉捕捉應用程序的狀態。

+0

這並非完全如此。您可以通過在'onPause()'和'onResume()'中設置標誌來跟蹤應用程序的前臺時間。不過,我同意突出「服務」類對提問者很有用。 –

+0

哦,我只是簡單地編輯了我的回覆,當你評論:'onResume'和'onPause'的時候:] – anirvan

相關問題