调起其他APP的Activity或Service组件的注意点

最近在参考《Android开发艺术探索》学习跨进程通信,在写一个使用Messenger跨APP通信的小实例时,在调起另一个APP的组件时遇到几个值得注意的点,记录一下。

一、调起其他App的Activity组件

    1、隐式Intent调起方式,当使用action匹配规则,目标组件不要忘记添加默认的category规则。

  错误实例:

没有添加默认category规则

  正确实例:

正确实例

  点评:如果是隐式Intent,系统会默认加上一个android.intent.category.DEFAULT,因此如果目标组件中没有,隐式Intent就会匹配失败。

2、关于android:exported属性是否需要设置

android:exported 是Android中的四大组件 Activity,Service,Provider,Receiver 四大组件中都会有的一个属性。总体来说它的主要作用是:是否支持其它应用调用当前组件。 

点评:如果包含有intent-filter 默认值为true; 没有intent-filter默认值为false。由于我们已经设置intent-filter,可以不用再设置android:exported="true".

二、调起其他App的Service组件

1、隐式Intent调起方式:在Android5.0以前可以通过隐式Intent方式启动其他App的Service,就跟Activity启动隐式Intent一样的。但是在5.0以后,只能使用显示的Intent方式启动了。

错误实例:

不能在5.0以后使用隐式Intent来启动其他APP的Service组件

正确实例:

正确实例
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,136评论 25 709
  • 2.1 Activity 2.1.1 Activity的生命周期全面分析 典型情况下的生命周期:在用户参与的情况下...
    AndroidMaster阅读 8,293评论 0 8
  • 水瓜花 高举夏的旗帜 用金灿灿的独白 冲击蔚蓝的心事 掀起白色的浪花 朵朵 在天之涯 松叶牡丹 暴雨也不能冲垮 ...
    非叶非花阅读 1,661评论 2 2
  • 很久不曾在娘家小住,因为工作,因为孩子,因为家庭,好像总有些很重要的事情,回家看看爸妈会被一再地往后延迟。 都说时...
    棉托鞋阅读 3,060评论 0 0
  • 一生中不会有几个掉鞋子的动作 能够占据记忆多年 她从外面俯瞰,惊讶然后赞赏最后微笑 云端上许多暖和亮光 圆鞋口袒露...
    丁千阅读 1,238评论 0 0

友情链接更多精彩内容