隨着Oreo引入新的後臺服務限制,我很難找到一個地方來澄清IntentServices是否仍然可以在應用程序後臺運行時從JobScheduler啓動。Android Oreo服務限制會影響來自作業調度程序的intentservices?
我必須根據各地地理界線之後需要一個柵欄壞了運行的intentService一個非常重要的特點。我花了很長時間把它設置成排隊工作,當圍欄被打破並且應用程序在用於牛軋糖的DOZE中時。當網絡連接窗口重新打開時,當作業最終由操作系統運行時,我在intentService中依次分離每個作業。我現在不能在技術上開始服務,而應用程序不在前臺,或者由於我使用JobScheduler,這仍然被允許,所以我不能再這麼做了嗎?
在我問這個問題之前,我實際上正在閱讀這篇文章。它與這個新限制的相當多99%的資源相同。它說JobScheduler是一個替代方案,但沒有詳細介紹如何使用它或將IntentServices產生的細節。 – Le2e410
@Le2e410如果我沒有錯,那麼在本文中明確提到「首先要注意的是,如果當你的應用程序不在前臺時試圖調用startService(),那麼IllegalStateException將會是拋出「。所以如果您嘗試在後臺啓動服務,則會拋出異常,而不管啓動此服務的組件如何。 –
是的,那正是我的想法,但我不確定是否因爲操作系統是啓動工作的人,這是一項工作。這讓我想知道當地理圍欄被破壞並且OS將pendingIntent發送到您的intentService時會發生什麼。當你的應用處於前臺時,geofences似乎只能工作了。如果我在這裏沒有錯過任何東西,那真是一個非常糟糕的疏忽。 – Le2e410