Android 8.0以上如果使用service就会报“ Context.startForegroundService() did not then call Service.startForeground()”这个错,是因为Google限制了在调用了startForegroundService方法以后,5s内一定要调用startForeground方法,但是这个其实很难杜绝,因为每台设备情况不一样,如果手机卡一点,很可能就卡过这5s了,所以我们只能尽量减少。
1.不要在fragment里启动service,建议在mainActivity里启动,并且要成对的start和stop,在onDestroy()里stop。
2.在onCreate和onStartCommand都startForeground(),并且id不要用0。
以上
网友评论