美文网首页
调起其他APP的Activity或Service组件的注意点

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

作者: 幻境召唤师 | 来源:发表于2018-08-22 18:13 被阅读0次

    最近在参考《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组件

    正确实例:

    正确实例

    相关文章

      网友评论

          本文标题:调起其他APP的Activity或Service组件的注意点

          本文链接:https://www.haomeiwen.com/subject/svvyiftx.html