2011-09-05 85 views
0

我有兩個活動,A和B.活動A實現一個LocationListener,定期打印出原始的GPS座標的屏幕。活動B只是一個帶有MapView的MapActivity。我希望能夠將週期性生成的座標從A傳遞到B,即使A在背景中暫停,B在前景中。原來,當活動A暫停時,LocationListener確實繼續檢索座標。在B關注焦點的情況下,那麼如何從A中傳遞這些值? startActivity(intent)是否適合於已經開始且處於前臺的活動?如何將數據從後臺線程傳遞到當前顯示的活動?

回答

1

如果您需要不斷調查位置更新,請考慮製作「粘滯」服務(但不是像androidika)。查看Remote Messenger Service示例。這將允許活動「聽到」來自該服務的位置更新。

在我的應用程序中,我做了一個「聽到」位置更新以及連接是否丟失的基類。然後,從這個基類繼承的ui活動。因此,我可以讓兩個不同的活動接收更新,但最小化重複的代碼。

+0

做了這個幫助嗎? – Ian

0

我推薦使用在後臺運行的服務。 或者不是讓一個活動決定何時更新位置,可以在需要時從兩個活動中的任何一箇中啓動IntentService。 看看PlacesUpdateService這不僅僅是尋找gps coordiantes,它會給你這個想法。

+0

請記住,在服務中完成的工作仍然在UI線程上運行... –

+0

IntentService不會 – pumpkee

+1

什麼是更合適的API用於服務與預先活動進行通信? – Phillip

相關問題