文档开发者中心
我的

Activity的exported属性

1. 如果显式exported属性,不管这个activity有没有设置intent-filter,那么exported的值就是显式设置的值

2. 如果没有设置exported属性,那么exported属性取决于这个activity是否有intent-filter
如有intent-filter,那么exported的值就是true
如没有intent-filter,那么exported的值就是false
3. 如何合理设置exported
封闭式:被调用的Activity与调用的Context必须在同一个App,其他任何App不能调用 这种是我们最常见的Activity,有2种情况:
没有intent-filter情况,可以不设置exported或者设置exported为false;

有intent-filter情况,必须设置exported为false。
半封闭式:被调用的Activity只能被部分其他App调用,如同一个公司的2个App之间这种场景下,除了满足封闭式设置外,还必须把调用App和被调用App设置相同的uid,即在2个App的AndroidManifest.xml添加相同的android:sharedUserId
开放式:可以被任何App调用这种场景主要是对外接口,如微信、微博的分享接口。大多数情况下,这样的Activity都会有intent-filter,因此也没必要显式地把exported设为true,不设是可以的,当然不能设为false。但如果你没有intent-filter,那就必须显式地把exported设为true。 当然,对于三方app接口的intent-filter设置还有一些要求,如在隐式intent调用必须添加
android.intent.category.DEFAULT

点赞
收藏
回复
分享
举报
浏览5189 发布于2019-07-09 03:06未知归属地
全部评论
最多点赞
最新发布
最早发布
暂无评论
暂无评论
写回答
新增插入模板功能
一键使用模板,快速填写内容,轻松发帖~
知道了
  • 为了保障您的信息安全,请勿上传您的敏感个人信息(如您的密码等信息)和您的敏感资产信息(如关键源代码、签名私钥、调试安装包、业务日志等信息),且您需自行承担由此产生的信息泄露等安全风险。
  • 如您发布的内容为转载内容,请注明内容来源。

我要发帖子

了解社区公约,与您携手共创和谐专业的开发者社区。