[問題] 中國品牌手機的Service問題?

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

Links booklink

Contact Us: admin [ a t ] ucptt.com