2013-06-19 73 views
0

我想每012分鐘跟蹤的用戶位置並將用戶位置存儲在數據庫中。 如果用戶位置30分鐘沒有變化,那麼我必須通知用戶,如果用戶在特定時間沒有關閉應用程序。 例如:下午8時我還必須通知用戶在Android中執行位置跟蹤

跟蹤應該在單獨的線程中,以便應用程序可以在位置跟蹤進行時執行其他任務。

我完全陷在這一點,我怎樣才能使單獨的線程來三件事

  1. 的位置跟蹤

  2. 30分鐘提醒通知

  3. 爲8.00下午提醒

如果向用戶顯示通知,並且位置發生變化,則應刪除通知並跟蹤應正常完成

+0

請幫幫我。 PLZ指導我如何執行鍼對單獨位置更新和通知的線程 –

+0

您必須在場景中使用具有服務的線程。 – amalBit

回答

0

您需要爲此服務,並且在服務中您可以以一分鐘的時間間隔實現位置監聽器,並且對於電池優化,您應該使用Google Location API。而且您還使用活動識別來查找用戶移動。

+0

你可以舉一些例子來啓動它 –

0

如果您每分鐘檢查一次該位置,則您的電池壽命將會縮短。

無論如何,所有這些任務都可以通過使用AlarmManager來完成。您將爲下一個事件設置一個時間,當它發生時,即使您的Activity位於後臺,代碼也會運行。我不完全確定你的意思是「晚上8點關閉應用程序」,應用程序不需要看到這些事情發生。

+0

「關閉應用程序」意味着我必須停止跟蹤 –

+0

您最好向應用程序添加一個禁用(並啓用!)跟蹤的按鈕。或者你期望用戶無法使用他的設備? – dmon

+0

我已經添加了按鈕,但如果用戶忘記點擊關閉按鈕,那麼我必須給出通知 –

1

我看到沒有必要爲此使用線程。 location strategy page上的Android文檔定義瞭如何獲取位置更新,並且可以使用Countdown timer來完成您的時間安排。

+0

除了你不應該運行所有這些不同的邏輯在來自「背景」「服務」的主線程上 - 這將影響所有其他應用程序的前臺UI。 - 這就是爲什麼你想在'Service'中產生其他線程的原因。 –

+1

@Richard位置API和倒數計時器API都是回調函數,因此是非阻塞的,因此是非阻塞的。 – Dobbo

+0

當然可以! +1你已經指出了一些如此明顯的東西,但也顯示了我的跟蹤器中一個糟糕的設計錯誤(實際上我沒有多線程,但我經常調用startService)。有時需要一個全新的視角來清楚地看到某些事情。 –