Android 安卓-是否可以使用私有意图而不是全局意图?

Android 安卓-是否可以使用私有意图而不是全局意图?,android,android-intent,global,private,public,Android,Android Intent,Global,Private,Public,背景: 我注意到,对于内的常规活动,任何应用程序都可以打开我的应用程序的活动 问题: 是否可以只允许我自己的应用程序(或应用程序或软件包)在同一范围内发送和接收意图,以便其他应用程序无法接收它们或干扰应用程序的流程 例如: 假设我有一个broadcastReceiver,它监听某种意图,但此意图仅用于驻留在我的应用程序内或我创建的另一个应用程序内的其他服务/活动,但我不希望其他人能够使用此意图 请帮帮我。 设置一个明确的应用程序包名称,以限制此意图将解析到的组件。如果保留默认值null,则将考虑

背景: 我注意到,对于内的常规活动,任何应用程序都可以打开我的应用程序的活动

问题: 是否可以只允许我自己的应用程序(或应用程序或软件包)在同一范围内发送和接收意图,以便其他应用程序无法接收它们或干扰应用程序的流程

例如: 假设我有一个broadcastReceiver,它监听某种意图,但此意图仅用于驻留在我的应用程序内或我创建的另一个应用程序内的其他服务/活动,但我不希望其他人能够使用此意图

请帮帮我。

设置一个明确的应用程序包名称,以限制此意图将解析到的组件。如果保留默认值null,则将考虑所有应用程序中的所有组件。如果非null,则意图只能匹配给定应用程序包中的组件

或者您可以使用
setSelector()
,但不能同时使用两者

假设我有一个broadcastReceiver,它监听某种意图,但此意图仅用于驻留在我的应用程序内或我创建的另一个应用程序内的其他服务/活动,但我不希望其他人能够使用此意图


除了雷诺的回答之外,对于您上面引用的特定要求,请使用
LocalBroadcastManager
。你不仅能得到你所寻求的安全感,而且效率更高
LocalBroadcastManager
在Android支持包中提供,AFAIK应该可以回到Android 1.6。使用
LocalBroadcastManager

我应该在什么时候使用它们,使用它们的优点和缺点是什么?另外,如何限制我的应用程序的活动,使它们不能从其他应用程序启动?也许舱单上有什么?拜托。我能想到的一个办法是检查是否有多余的。有点像令牌,如果传递的令牌是您期望的:启动活动。您的意思是我放置了某种密码机制,该机制在启动的活动的onCreate()方法上检查?我希望有一个简单的显式解决方案。真的没有这样的事吗?你能告诉我更多吗?怎么会更快?它是如何工作的?这就像直接发送对象一样吗?如果是,是否也建议在活动和服务之间发送快速(高频)数据?