赞
踩
1.启动服务
startService()抛异常: RemoteServiceException: Context.startForegroundService() did not then call Service.startForeground()
解决方法:
a.
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
- context.startForegroundService(new Intent(context,clzz));
- } else {
- context.startService(new Intent(context,clzz));
- }
b.在服务的onCreate方法里添加
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
- startForeground(1, new Notification());
- }
2.注册广播
在Android 8.0的平台上,对隐式广播做了限制(系统发送的广播都是隐式广播),不能在AndroidManifest文件对有些广播进行静态注册,这里必须强调是有些广播,因为豁免广播还是能够注册的
a. 静态注册,也就是说在AndroidManifest文件中对BroadcastReceiver进行注册,通常还会加上action用来过滤。
b. 动态注册,调用Context中的registerReceiver对广播进行动态注册,使用unRegisterReceiver方法对广播进行取消注册的操作。
3.安装未知来源应用,需要添加权限:
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
注意:只有添加此权限,应用才会在安装未知来源应用列表中出现,安装才会出现安装提示,否则即使打开安装未知来源应用也没用
4.activity设置透明主题又设置方向会导致应用崩溃:
错误示例:
解决方法:取消透明主题的设置或者不要限制activity的方向
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。