[问题] 中国品牌手机的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