Android5.0启动Service注意事项
来源:互联网 发布:阿里云ecs安装php环境 编辑:程序博客网 时间:2024/05/16 07:02
隐式声明Intent启动Service是不安全的
ContextImpl源码指出,Android5.0隐式声明Intent启动Service直接抛出异常:
private void validateServiceIntent(Intent service) { if (service.getComponent() == null && service.getPackage() == null) { if (getApplicationInfo().targetSdkVersion >= Build.VERSION_CODES.LOLLIPOP) { IllegalArgumentException ex = new IllegalArgumentException( "Service Intent must be explicit: " + service); throw ex; } else { Log.w(TAG, "Implicit intents with startService are not safe: " + service + " " + Debug.getCallers(2, 3)); } }}
解决方法:
1. Intent intent = new Intent();
ComponentName componentName = new ComponentName(pkgName,serviceName);
intent.setComponent(componentName);
context.startService(intent);
2.Intent mIntent = new Intent();
mIntent.setAction("XXX.XXX.XXX");//Service能够匹配的Action
mIntent.setPackage(pkgName);//应用的包名
context.startService(mIntent);
0 0
- Android5.0启动Service注意事项
- Android5.0启动Service问题
- 关于在Android5.0中 无法启动Service问题
- android5.0之后不允许使用隐式Intent启动Service
- 启动Service时注意事项
- 关于Android5.0当中的Service启动问题--- Service Intent must be explicit: Intent
- 解决Android5.0及以上启动Service时,java.lang.IllegalArgumentException: Service Intent must be explicit
- android5.0远程绑定service
- Android5.0以上Webview上传文件注意事项
- Service启动方式之startService,及注意事项
- Android5.0 Lollipop Setting启动分析
- Android5.0隐式启动服务
- Android5.0以后隐式启动ServiceBug
- Android5.0隐式启动服务
- android中Service的启动,停止,绑定的注意事项
- service注意事项
- Android5.0,Android4.0启动拨号界面方法
- Genymotion无法启动Android5.0及5.1模拟器的解决方案
- Java虚拟机学习
- linux性能问题(CPU,内存,磁盘I/O,网络)
- JavaScript for Kids 学习笔记3. 数组
- MySQL中int、bigint、smallint和tinyint的详细介绍
- 行为型模式之访问者VISITOR
- Android5.0启动Service注意事项
- 平台应用组件
- JAVA的静态变量、静态方法、静态类
- EL表达式不起作用
- 工作问题03/10
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(六)maven整合SSM
- 274. H-Index
- php单例模式之“三私一公”
- Python基础——内存管理