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了,有遇到此类情况的朋友赶快试一试吧。

转载于:https://www.cnblogs.com/yzssoft/p/9933767.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值