2017-06-12 104 views
0

我有一個使用地理柵欄,我有一個很難克服的打盹模式Android應用程序。我的清單擁有WAKE_LOCK權限並且每個區域都有7個setNotificationResponsiveness爲0。我甚至將PendingIntent更改爲BroadcastReceiver,但應用程序在刪除智能手機屏幕後經過一段時間就會睡覺或死亡。我已經嘗試使用LocationRequest打盹模式睡谷歌的地理柵欄示例應用程序

LocationRequest.setFastestInterval(1000); 
LocationRequest.setInterval(2000); 

即便如此,我沒有成功。有沒有人設法使應用程序與Doze一起運行?

回答

0

最後我把我的應用程序接收推送消息。顯然,該應用程序不再被操作系統所殺。

0

我所面臨的問題,在我的聊天應用和定位跟蹤應用程序,而在休眠模式下,我們不會得到任何推動,否則我們不會得到任何網絡連接或位置的詳細信息和大部分後臺操作將被阻止,因爲電池優化,我們可以通過2種方式解決。

  1. 優先推送消息(我在聊天應用程序中使用) - 如果你發送普通推也不會達到應用程序,直到移動來正常的,如果發送優先推將達到你能做的應用一些過程在幾秒鐘內完成,但這也有一定的侷限性。

  2. 前臺服務 - 對於您的場景,這是最好的解決方案,您應該有服務並且該服務應作爲前臺服務運行,以便即使在打盹模式下也可以隨時獲取位置信息。在清單

+0

你有一個樣品(前臺服務)項目2?我一直在研究這個問題並試圖構建這個解決方案。但是我的方案並不知道我是否做錯了或不符合設計。我有一個GPS上課的時候地理圍欄事件發生時都在設備的在此位置的位置,這使得對服務器的調用來確定柵欄區域已經被激活和設備的位置。 – user6505882

+0

如何使用此服務更新位置?這個forground服務,我看到帖子說我應該創建一個通知,然後我不明白爲什麼。奇怪谷歌沒有更新Geofence的官方部分,通過解決這個問題與瞌睡。 – user6505882

+0

目前該應用程序有一個AlarmManager是不時生成日誌,我可以看到,如果應用程序沒有被關閉或處於睡眠狀態,但是,地理柵欄系統似乎睡覺 – user6505882

0

WAKE_LOCK權限是不夠的,使用喚醒鎖,你需要獲取並在代碼中釋放鎖,但與Android 6打盹模式開始它進入深度睡眠還與後天WAKE_LOCK 。

,對我也有打盹模式的工作方式:

在主要活動的onStop我獲得部分激活鎖定,我開始與服務意向STARTFOREGROUND_ACTION,服務調用startForeground並顯示一個通知。

在活動onResume中釋放WakeLock,服務將以STOPFOREGROUND_ACTION意圖停止並且服務本身調用stopForeground & stopSelf。

+0

我完成這個錯誤日誌激活鎖定,同時還舉行:MyBroadcastReceiver 。當應用仍然背景和設備屏幕關閉時,此錯誤會發生。 MyBroadcastReceiver現在延伸WakefulBroadcastReceiver。 – user6505882

+0

嘗試沒有任何wake_lock,Service + startForeground應該足夠。設備屏幕關閉時, –

+0

不起作用,應用程序睡眠/死亡。 – user6505882

相關問題