转自: http://www.cnblogs.com/xiaoxiaing/p/6278996.html

在使用AIDL进行通信的时候需要开启远程服务,在这里发现android5.0以后不能使用隐式intent :需要指定Intent的ComponentName组件名称信息:

intent.setComponent(xxx),

或指定

Intent的setPackage("包名"),

如果两者都没有指定的话将会报错。
尤其在framework层启动APP层的service时,如果是隐式启动service,可能会导致系统进程挂掉,出现不断重启的现象。

解决方法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能够匹配的ActionmIntent.setPackage(pkgName);//应用的包名context.startService(mIntent);

AIDL通信Demo

更多相关文章

  1. Android(安卓)应用的欢迎界面实现代码
  2. Android系统的启动流程(转载)
  3. API Demos 2.2 研读笔记(9)——通过调用子Activity返回值
  4. 【Android话题-2.5系统服务】ServiceManager启动和工作原理是怎
  5. Android(安卓)Studio在启动时gradle的问题:Download https://serv
  6. AIDL 消息通信
  7. Facebook 客户端优化实践后,App 启动提速65%
  8. Android(安卓)数据存储之SQLite
  9. Android(安卓)ApiDemos示例解析(20):App->Alarm->Alarm Service

随机推荐

  1. Android书页翻页设计:android-flip
  2. 转Android 安全攻防(一):SEAndroid的編譯
  3. Android下利用zbar类库实现扫一扫
  4. android github 知名库
  5. Android(安卓)Clipboard(复制/剪贴板)
  6. Android(安卓)面试精华题目总结
  7. Android(安卓)Notifications通知
  8. 5 枚 Android 风格的 Chrome 主题
  9. 实现了在android实现左右滑动切换界面的
  10. Android(安卓)v4包下的PagerTitleStrip,Vi