我又问了一个问题,这个问题和Android有关。这只是为了让我对发送广播的运作有更深入的了解。
我想知道的是:
1.为什么要使用广播接收器来进行活动以获得结果?
我认为广播接收器在处理实际设备信息时会比在应用程序中传递意图更有用。
2.开发人员可能遇到什么样的安全问题?
如果我假设,任何人知道我的包名(也许是通过反向工程),基本上就能捕捉到发送的意图,并看到随它传递的信息,我是否正确?
3.如果要将对象传递给其他活动,LocalBroadcastManager有什么好处?
我读到,如果你不想让发送的意图泄露到应用程序之外,这可能会更好。这是否也意味着,即使某个人有包名,他们仍然不能接收到应用程序之外的广播?
如果你认为我的问题不完整或基于错误的假设,请告诉我,这样我就可以从中吸取教训。:)
感谢一切能帮助你的人。
干杯,
做
发布于 2012-04-03 08:21:05
1)广播接收器是一种在不存在任何UI的情况下全局接收消息(意图)的机制。它们很好地在服务、活动甚至BroadcastReceiver本身等不同组件之间传递信息。可以在清单中定义它们,以便侦听特定的操作并做一些事情(例如,启动服务/活动),即使您的应用程序没有运行。然而,在activityForResult中,您的应用程序(活动)必须运行才能接收结果,这可能并不适合所有时间。
2)是的,如果您的动作字符串为其他应用程序所知,那么您的广播就会暴露在任何收听这些特定动作的接收器上。要避免这种情况,请使用LocalBroadcastManager.
3)使用LocalBroadcastManager是增加隐私的最好方法,确保您的广播只能在应用程序的上下文中被广播和收听。其他应用程序不能收听这样的广播,因为它们有自己的上下文,而且不知道您的应用程序的上下文。
,根据LocalBroadcastManager的google:
发送全局广播更有效。
最后一句话:如果您需要在应用程序中广播消息,并且不想在全球发送消息,那么LocalBroadcastManager是最好的选择。否则就走普通的路
https://stackoverflow.com/questions/9989283
复制相似问题