公共和私人意图之间有什么区别

时间:2013-04-30 11:17:26

标签: android

我知道在系统中注册的公共(命名)意图可以从任何应用程序和私有(匿名)意图中调用 应用。请有人给我一个例子,以便更好地理解。

提前致谢

2 个答案:

答案 0 :(得分:0)

Android documentation可能是解释它的最佳工作,这是一个相关的片段:

  

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

     

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

     

隐含意图尚未指定组件;代替,   他们必须包含足够的信息供系统确定   可用组件最好为该意图运行。使用时   隐含意图,给定这样一个任意意图我们需要知道什么   与它有关。

     

这是由意图解析过程处理的,   将Intent映射到Activity,BroadcastReceiver或Service(或   有时两个或多个活动/接收者可以处理它。

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

虽然通常使用隐式意图来启动其他活动,例如当您想要共享链接或通过电子邮件发送某些内容时,您会发出隐含意图并让用户决定使用该电子邮件客户端发送电子邮件或共享链接。

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

答案 1 :(得分:0)

很抱歉没时间写完整的答案,但您可以创建自定义权限,以便为Intents& BroadcastReceivers

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

这个问题可能会对您有所帮助:


@Commonsware在最近的博客文章中解释了这个问题: