我一直在試圖做一些類似於truecaller的應用程序,我的應用程序應該在通話掛斷後顯示屏幕。通過在manifest
文件中註冊android.intent.action.PHONE_STATE
隱式廣播來實現此目的。Android O:PHONE_STATE廣播限制
但由於Android O broadcast limitation,我將應用更改爲目標Android O,因此無法正常工作,而我正試圖找出該用例的替代解決方案。
在android文檔中建議的替代解決方案:Job scheduler
或註冊service
與context
。
作業調度程序:由於Job scheduler
優化,接收回調會有一些延遲。因此,如果我們的應用程序屏幕在電話呼叫幾分鐘後顯示,並且每隔幾秒查詢一次新呼叫記錄導致電量耗盡問題,則會影響用戶體驗。
使用Java中的上下文註冊服務:即使應用程序未處於活動狀態,我也希望該行爲能夠正常工作。如果系統殺死了Service
,這將不起作用。
註冊前臺服務:這需要一直向用戶顯示通知,這將成爲用戶的垃圾郵件,並且24/7全天候運行會佔用大量資源,從而無法實現廣播的全部目的侷限性。
請建議備用解決方案,以便用戶體驗保持不變。
在此先感謝
我們期望更好的東西,因爲前臺服務需要顯示通知。你不覺得這會成爲用戶的垃圾郵件嗎?而且,全天候運行服務會消耗大量資源。 – Bob
沒有其他解決方案。 – greywolf82
+1我只想補充 - 通知並不是那麼糟糕。例如,LastPass密碼管理器爲其後臺服務24/7顯示它,並且它消耗的資源非常少。另外,如果屏幕上有「臉部」,FB信使將顯示通知。 –