2017-08-21 61 views
1

現在很多應用都跟蹤您的位置。但是,在Android Oreo中,「應用程序將無法在後臺自由運行」,如this Android Developers video中所述。位置應用程序將如何在Android O中運行?

the developer docs

應用程序可以接收位置更新僅在每個小時幾次。

和任何例外情形規則:

考慮是,如果您的應用程序接收罕見的位置更新您的應用程序的使用情況在後臺運行不能成功的。如果是這樣的話,你可以通過執行下列操作之一檢索位置更新更頻繁:

...

通過調用startForegroundService開始在你的應用前景service()方法。當這樣的前臺服務處於活動狀態時,它會在通知區域中顯示爲正在進行的通知。

什麼,這似乎是在說,如果你在奧利奧位置跟蹤的用戶,你堅持在任何時候另一個正在進行的通知。它是否正確?

我真的希望有一種解決方法,因爲如果我有三個跟蹤位置的應用程序,即使我不移動,我的通知欄也會與三個正在進行的通知混雜在一起。

回答

3

這似乎是說,如果你想能夠檢測奧利奧的位置變化,你的應用程序需要一直在進行通知。它是否正確?

不完全是。這就是說,想要接收位置更新的應用比每小時幾次更頻繁,而不是前臺活動,則很可能需要創建前臺服務。正如文檔指出的那樣,還有其他選擇(被動提供者,地理圍欄,批處理API)。而且一些應用程序不會特別頻繁地需要位置更新,因爲底層數據不會特別頻繁地更改(例如,天氣應用程序小部件)。

如果我有三個應用程序,跟蹤定位,我的通知欄將是混亂的三個正在進行的通知,即使我不動

恕我直言,如果你有1個+應用程序,不斷跟蹤你在後臺的位置,你真的需要重新考慮你的生活選擇。

+0

首先,我很榮幸能收到CommonsWare的答覆!你的書籍和stackoverflow的巨大風扇的答案! 2.爲了檢測位置變化,應用程序需要連續訪問位置,不是嗎? 3.據我所知,文檔中的其他選項(被動提供者,地理圍欄,批量API)並沒有提供足夠頻繁的跟蹤位置更新。 4.目前正在重新評估哈哈。但是有很多用戶使用(可能是1個)位置跟蹤應用程序。他們是否堅持另一個正在進行的通知? 5.編輯我的問題來澄清。 – Patrick

+2

@Patrick:「爲了檢測位置變化,應用程序需要連續訪問位置,不是嗎?」 - 再次,這取決於應用程序的需求。天氣預報變化緩慢,因此只有每小時幾次才能獲得位置。 「他們是否堅持另一個正在進行的通知?」 - 很可能,至少在一開始。坦率地說,僅僅在Android 8.0+的後臺運行* code *是沒有前臺服務的問題。儘管如此,我還沒有試驗看看如果用戶禁止通知會發生什麼。在這種情況下,Android仍然可以提供頻繁的位置更新。 – CommonsWare

+0

@Patrick:「但是有很多用戶使用(可能是1個)位置跟蹤應用程序」 - 毫無疑問。鑑於Android設備的安全問題以及服務器遭受黑客攻擊的傾向,我建議儘可能少地使用位置,特別是在後臺持續使用位置。順便說一句,感謝您的親切的話! – CommonsWare

相關問題