调起其他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组件

正确实例:

正确实例
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,838评论 25 709
  • 2.1 Activity 2.1.1 Activity的生命周期全面分析 典型情况下的生命周期:在用户参与的情况下...
    AndroidMaster阅读 3,116评论 0 8
  • 水瓜花 高举夏的旗帜 用金灿灿的独白 冲击蔚蓝的心事 掀起白色的浪花 朵朵 在天之涯 松叶牡丹 暴雨也不能冲垮 ...
    非叶非花阅读 242评论 2 2
  • 很久不曾在娘家小住,因为工作,因为孩子,因为家庭,好像总有些很重要的事情,回家看看爸妈会被一再地往后延迟。 都说时...
    棉托鞋阅读 409评论 0 0
  • 第三个案例,就是书中这一页(60页)。如果你能够听到这里,并且能够理解的话,其实道理就简单了,整本书都会通过这张图...
    aabebw阅读 453评论 0 0