2012-03-12 72 views
1

我正在寫作,並有一個運行計時器的應用程序(每十秒更新一次UI,就像手錶一樣),並且還通過GPS跟蹤距離。預期的用例是讓這個應用程序運行長達幾個小時,所以它不應該被系統殺死。與您今天在市場上找到的很多正在運行的應用程序非常相似(儘管這不是我所做的)。Android - 定時器和GPS跟蹤。我應該使用服務嗎?

這個要求不應該被系統殺死,我指的是創建一個服務,但它似乎是將定時器和距離更新傳遞給用戶界面,而這往往會導致效率低下。

使用服務是最好的方法嗎?如果是這樣,我如何有效地處理更新UI上的時間和距離?或者有另一種方法來防止系統殺死我的應用程序?

回答

1

我已經決定,我確實會使用一項服務,但只有在服務啓動後才能使用它,並在活動暫停時使用它。活動將把當前狀態傳遞給服務,在該服務中,它將處理所有需要完成的所有事情,並且當恢復時,活動將從服務中恢復狀態並將其關閉。

0

除非您需要某些事情發生,即使您的應用程序的活動被推到另一個活動後面以及手機屏幕關閉時,您也不需要服務。所有的事情都是平等的,最好是讓它的應用程序在恢復時巧妙地恢復。

例如,如果您有秒錶,則會記錄開始時間。當你的應用程序的活動暫停時,你會停止一切。你停止計數。但是當你恢復時,你就知道開始時間,這樣你就可以用正確的時間進行選擇並恢復更新UI。

只需創建一個計時器/線程來更新您的活動中的用戶界面。在onResume()中啓動並停在onPause()上。

+0

謝謝。這對定時器來說非常合理,但我認爲它不適用於GPS部分。我可以存儲最後一次知道的位置,但由於它們可能會輪流出現,因此回到活動時僅使用最後一個位置並不準確。 – Scott 2012-03-12 22:23:21

+0

您在活動中註冊一個位置偵聽器。你開始在onResume()中偵聽並停在onPause()中。如果您的活動不在前臺需要跟蹤位置,則需要服務。 – 2012-03-14 02:48:10

相關問題