前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android5.0以后隐式启动ServiceBug

Android5.0以后隐式启动ServiceBug

作者头像
fanfan
发布2018-01-24 18:18:19
6050
发布2018-01-24 18:18:19
举报
文章被收录于专栏:编程思想之路编程思想之路

以前写过一篇关于进程间通信的博客

通信之进程间通信-AIDL

当时用的还是4.2的系统,跨进程 的服务可以根据action进行启动

代码语言:javascript
复制
                Intent intent = new Intent();

                intent.setAction("android.intent.action.aidl.server");

但是现在用6.0时发现报错

代码语言:javascript
复制
01-06 01:54:14.140: : Process: com.fang.zrf.clientdemo, PID: 18507
01-06 01:54:14.140: : java.lang.IllegalArgumentException: Service Intent must be explicit: 
                                            Intent { act=android.intent.action.aidl.server }
01-06 01:54:14.140: : 	at android.app.ContextImpl.validateServiceIntent(ContextImpl.java:1209)
01-06 01:54:14.140: : 	at android.app.ContextImpl.bindServiceCommon(ContextImpl.java:1308)
01-06 01:54:14.140: : 	at android.app.ContextImpl.bindService(ContextImpl.java:1286)
01-06 01:54:14.140: : 	at android.content.ContextWrapper.bindService(ContextWrapper.java:604)
01-06 01:54:14.140: : 	at com.fang.zrf.clientdemo.MainActivity.onClick(MainActivity.java:70)
01-06 01:54:14.140: : 	at android.view.View.performClick(View.java:5205) 

报错之处service的intent必须是明确的,显示的指出。这时候如果是在同一个应用中可以调用类名启动,那如果是不在同一个应用中之能通过service的路劲来调用了。

可以通过setComponent来调用

代码语言:javascript
复制
intent.setComponent(new ComponentName("com.fang.zrf.serverdemo",  "com.fang.zrf.serverdemo.CustomService"));

也可以通过

代码语言:javascript
复制
intent.setClassName("com.fang.zrf.serverdemo",  "com.fang.zrf.serverdemo.CustomService");

来调用,因为本质上是一样的setClassName源码也是创建了ComponentName对象

代码语言:javascript
复制
public Intent setClassName(String packageName, String className) {
        mComponent = new ComponentName(packageName, className);
        return this;
    }

其实思路就是通过packagename 和classname来调用,方法有好多。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-02-28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 通信之进程间通信-AIDL
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档