use*_*948 22 android android-intent
我正在加速Android开发,隐含意图和广播接收器之间的区别尚不清楚.我希望能够帮助区分这些概念以及何时使用这两个概念.
两者都接收意图,都对系统消息作出反应,那么为什么甚至需要广播接收器以及何时使用而不是隐式意图和意图过滤器来接受隐式意图?
323*_*3go 23
广播就是这样 - 消息向任何人倾听.它们本质上是不安全的,并且不能保证向预期接收者的递送,因为实际上没有预期的接收者.例如,CONNECTIVITY_CHANGE广播非常清楚:当Android设备中的连接发生变化时,许多应用可能会感兴趣.它不是ConnectivityManager必须通过特定的方式通知每个应用Intent,而是发送广播.任何已注册对此活动感兴趣的应用都将收到通知.任何未运行或不关心的应用程序都不会.
一个Intent是"已发送"当一个应用程序或Activity要发动另一做的很具体的事情.例如,文件管理器可能想要启动图像查看器或视频播放器.您的应用程序可能希望Activity在您的另一个应用程序中启动非常具体的应用程序等.特定意图(即包括程序包名称和组件名称)的通信不容易被截获,因此它更安全一些.最重要的是,只有一个"接收器" - 如果没有找到,那么Intent它将失败.
此外,a BroacastReceiver将在一个Activity或所Service接收的广播中处于活动状态,通常只会更改状态和/或进行次要的UI更新...例如,如果您的互联网连接断开,您可能会禁用一些操作.相比之下,特定的Intent通常会启动一个新的Activity或将现有的Intent 带到前台.
Sak*_*ain 15
我将在这里编制一个列表,列出Implicit Intents(发送通过startActivity())和Broadcasts(发送通过sendBroadcast())之间的所有差异
BroadcastReceiver无法查看或捕获与startActivity()一起使用的Intent; 同样,当你广播一个意图时,你永远不会找到或开始一个活动.这两个操作在语义上非常不同:使用Intent启动Activity是一个前台操作,它修改用户当前正在与之交互的内容; 广播Intent是用户通常不知道的后台操作.
如果我发现其他任何东西,我会添加更多.
| 归档时间: |
|
| 查看次数: |
7563 次 |
| 最近记录: |