作者:
tga123 (叛帝)
2019-10-22 15:45:39各位好
最近碰到一個困難
就是中國廠牌的手機 小米 oppo 華為等手機..
很容易把我的Service關閉,或是不按照生命週期去走
想問問各位是不是也有碰到相同的問題
上網查了蠻多資料雖然改了省電或是一些清記憶體的設定
還是會有一些零星的問題存在
所以想問問看各位有沒有碰到相同的狀況呢?
生命週期舉例來說就是
我寫在onstop或是ondestory的程式碼
在app被關閉時完全不會執行...
Service有onstop?你Service的onStartCommand方法回傳什麼值?8.0以上的話,是寫成foregrohnd service嗎?
作者:
vegafish (科科大宅男)
2019-10-27 13:42:00沒辦法,只能根據使用者的回報,把那個型號移出支援名單,這樣那個手機就不會下載到你的 app
呃所以你還是沒回答啊,你的Service是寫成最難以被關閉的執行方式+系統有餘裕時自動重啟嗎?Activity我記得好像不是所有情況必執行OnStop,至於OnDestory...,會不會是因為沒有被終止所以沒執行?此時adb shell進去檢查Process列表,都沒有你的程式嗎?
作者:
vegafish (科科大宅男)
2019-10-30 03:45:00回樓上 kobe,有些手機是很暴力地 kill app 下的所有 process,WorkManager 和 AlarmManager 根本不起作用。更不用想要觸發 onDestroy,因為這些 OEM 廠商根本不照標準來實作。service 被停掉,可以用週期 alarmmanager + broadcastreceiver 去檢查並重啟
感謝樓上分享資訊,想請問一下,例如像撥放歌曲這類前景的Service,也會播到一半直接被這類手機系統直接幹掉嗎?
作者:
vegafish (科科大宅男)
2019-10-30 13:29:00先謝謝 kobe 願意花時間一起討論,ForegroundService 還是有機會被系統砍掉,可以 Google 搜尋 foregroundservice + killed + oppo,找結果是 stackoverflow 網站,裡面諸多抱怨...我自己也是被這類手機弄得很煩
我知道有機會,我是想知道這類手機是不是連像音樂類型的ForegroundService都會直接幹掉,因為這樣使用者體驗肯定會超差,考量到以後的APP可能得上架,要先做好準備XD
作者:
vegafish (科科大宅男)
2019-10-31 02:36:00可能要特別借一隻這類的手機來測...才知道被砍的機會到底有多頻繁我自己的 App 一開始沒特別處理這類手機,現在大部分客訴都來自他們