exported属性
该属性对于Android中的四大组件来说,都是可设置的属性
- 本文主要从 设置为true、false和默认值三种情况下来描述该属性的作用
Activity中
true
- 表示该Activity可以由其他应用的组件来启动
false
- 表示该Activity不可以让其他应用的组件来启动
默认值
- 如果activity中使用了intent过滤器,那么该属性默认为true
- 如果activity中没有使用intent过滤器,那么该属性默认为false。
Service
true
- 表示该Service可以让其他应用的组件来调用该服务与之交互
false
- 表示该Service不可以让其他应用的组件来调用该服务与之交互
- 只有同一个应用内的组件或者相同用户ID的应用组件可以调用这个服务
默认值
- 至少存在一个过滤器意味着服务专供外部使用,因此此时默认值为true
- 不存在过滤器,意味着该服务只能通过指定其确切的类名进行调用,意味着专供内部使用,默认值为false
provider
true
- 该提供者可以让其他应用使用
- 任何应用可以使用URI来访问它。
false
- 该提供者不能让其他应用使用
- 可以让同一应用内来访问这个提供者。
- 与该提供者有相同的用户ID的程序可以访问它
默认值
- 该属性是在API17中加入中,在这之前provide就像设置为true一样
- 在API17以上,默认值为false
receiver
true
- 该广播接受者可以接受来自其他应用外部来源发出的广播
false
- 表达式该广播只能接受同一应用内的活着具有相同用户ID的应用发来的广播
默认值
- 如果包含了过滤器Intent,那么意味着可以接受系统级别和其他应用发出的广播,此时值为true
- 如果没有包含过滤器Intent,那么意味着仅能监听到本应用内的。
在此,感谢为我制作文章封面的小哲同学!(花瓣@就是小哲吖)
网友评论