在我的项目中,我使用BroadcastReceiver
s 作为来自长时间运行线程的回调(例如,通知活动下载已完成并从 Worker 发送一些响应数据,Thread
以便活动可以向用户显示适当的消息..)。要使用BroadcastReceiver
s,我每次使用它时都必须小心注册和取消注册广播接收器,并且当我使用此方法进行更多不同的操作(如下载、进行 WebService 调用等)时,还必须特别注意要发送哪些消息..)。并且还通过广播的意图发送自定义对象,我还需要制作对象Parcelable
。
与这种方法不同,我还看到了似乎比我使用的方法更简单的回调方法方法。回调方法是简单的接口方法实现,可用于实现与应用程序消息传递中的 BroadcastRecaiver 相同的效果。这种方法不需要 Parcelable 实现来返回复杂的对象,它不使用像BroadcastReceiver
.. 这样的键。我认为不好的部分是我需要在调用回调方法之前检查回调对象的 null 值。和还要确保我在 UI 线程上运行来自实现的代码,这样我就可以更新 UI 而不会出错。
好的,我希望你明白我的意思:)。
现在的问题是,您认为回调方法是否比BroadcastReceiver
仅在单个应用程序内部使用的方法更好(更轻、更干净、更快..)?(请注意,我没有将 AndroidService
用于后台工作.. 只是AsyncTask
和Thread
s)
谢谢!