android开发针对小米、三星、华为8.0+系统个别型号打开应用闪退

时间:2023-03-09 05:06:57
android开发针对小米、三星、华为8.0+系统个别型号打开应用闪退

最近开发中有个别客户反馈新换的三星、小米或者华为手机打开应用就闪退,而且是个别型号。针对这种情况特别查阅了一些资料,原因是8.0+系统的手机不允许后台创建服务,那么怎么修改呢,请看代码:

1.修改启动方法

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
context.startForegroundService(intent);
} else {
context.startService(intent);
}

2.在service里onCreate()方法中再调用startForeground方法,不然就会出现ANR

startForeground(1, new Notification());

好了,以上就是这个问题的解决方法;如果这些东西修改过了,你的应用还是闪退,不要急,检查一些你的应用中是否使用了极光推送等第三方服务,如果有问题就出在这里,在清单文件里面极光推送有个相互拉起的服务,这是个可选项,如下

<!-- 可选项。用于同一设备中不同应用的JPush服务相互拉起的功能。 -->
<!-- 若不启用该功能可删除该组件,将不拉起其他应用也不能被其他应用拉起 -->
<!-- <service
android:name="cn.jpush.android.service.DaemonService"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="cn.jpush.android.intent.DaemonService" /> <category android:name="com.yzssoft.weiyifamily" />
</intent-filter>
</service>-->

把以上代码给注释掉就OK了,有遇到此类情况的朋友赶快试一试吧。