传送门:安卓开发中的系统版本兼容的注意事项(一)(Android5.0 API21)
安卓开发中的系统版本兼容的注意事项(二)(Android6.0 API23)
安卓开发中的系统版本兼容的注意事项(三)(Android7.0 API24)
作为安卓开发者最头疼的一点,莫过于谷歌越来越快的版本更新速度。以及升级编译版本后需要面对的大量兼容性异常。尤其是今年电信终端产业协会(TAF)发布了《移动应用软件高API等级预置与分发自律公约》。https://baike.baidu.com/item/移动应用软件高API等级预置与分发自律公约/22759862
逼着你升级,想不升级都不行。
下面将根据自己实际项目中升级开发版本的经验,对每个版本的注意事项做一下总结性回顾。方便自己以后查阅方便,也可以给有这方面需求的新手提供一点借鉴。
一、ContentResolver的使用限制
升级到8.0+以后,我们会发现,在使用registerContentObserver和notifyChange方法时。APP直接异常崩溃了, 后台异常提示为:SecurityException
这是因为Android 8.0 引入了新的广播接收器限制,应用中所有为隐式广播 Intent 注册的广播接收器都不能正常使用了。官方建议使用动态广播代替静态广播。具体的操作方法如下:
1.首先在AndroidManifest.xml
中声明ContentProvider
<provider
android:name="com.shengcai.observer.MyContentProvider"
android:authorities="com.shengcai.observer.MyContentProvider"
android:enabled="true"
android:exported="false"/>
这里的MyContentProvider是我们统