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了,有遇到此類情況的朋友趕快試一試吧。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM