Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 公共意图和私人意图的区别是什么_Android - Fatal编程技术网

Android 公共意图和私人意图的区别是什么

Android 公共意图和私人意图的区别是什么,android,Android,我知道在系统中注册的公共(命名)意图可以从任何应用程序中调用,而在单个应用程序中使用的私有(匿名)意图可以调用 应用请大家给我举个例子,让我更好地理解 提前感谢这可能是最能解释它的,这里有一个相关的片段: 您将使用两种主要形式的意图 明确意图已指定组件(通过 setComponent(ComponentName)或setClass(Context,Class)),其中 提供要运行的确切类。这些通常不包括任何 其他信息,只是应用程序启动的一种方式 当用户与 应用程序 隐含意图未指定组件;相反 它们

我知道在系统中注册的公共(命名)意图可以从任何应用程序中调用,而在单个应用程序中使用的私有(匿名)意图可以调用 应用请大家给我举个例子,让我更好地理解

提前感谢

这可能是最能解释它的,这里有一个相关的片段:

您将使用两种主要形式的意图

明确意图已指定组件(通过 setComponent(ComponentName)或setClass(Context,Class)),其中 提供要运行的确切类。这些通常不包括任何 其他信息,只是应用程序启动的一种方式 当用户与 应用程序

隐含意图未指定组件;相反 它们必须包含足够的信息,以便系统确定 为了达到这一目的,最好运行所有可用组件。使用时 含蓄的意图,鉴于这种任意的意图,我们需要知道 与之相关

这是通过意向解决过程来处理的, 将意图映射到活动、广播接收器或服务(或 有时两个或多个活动/接收者)可以处理它

您在活动中用于启动内部活动的明确意图

虽然隐式意图通常用于启动其他活动,如当您想要共享链接或电子邮件时,您发送隐式意图并让用户决定使用电子邮件客户端发送电子邮件或共享链接


在某些情况下,您可能希望使用隐式意图来运行应用程序的内部组件,因为它似乎更稳定。

抱歉,没有时间写完整的答案,但您可以创建自定义权限来签署您的
意图
&
广播接收者

使用这些自定义权限时,只有使用相同签名密钥签名并包含该自定义权限的应用程序才能看到这些意图

这个问题可能会帮助您:


@Commonware在最近的一篇博客文章中很好地解释了这个问题: