处理程序或监听器。哪种更适用于事件通知?哪个更快、更高效等等?
这是个好问题!
使用Handler的场景
我的应用中有一个后台服务,专门用于网络通信,我决定使用Handler来处理它,因为Handler可以按照队列顺序依次执行请求,这样我就可以保证请求的顺序得到了维护。
例如,在即时聊天应用程序中,你可能会发现维护聊天顺序是很重要的。
使用回调函数的场景
我的后台服务还使用一个类来读取硬件数据(在一个单独的线程中),一些数据随时可能进来并需要立即处理。为了处理这个类,我实现了一个监听器/回调接口。
我唯一的问题是是否有关于Handler大小的礼仪。 我大约有50条唯一的消息:
Handler占用了该服务代码的约60%,导致出现了一个非常大的switch(case {})结构(几乎1000行代码)。太大了吗?怎么分开?
没有所谓的Listener类型,它只是回调接口的命名约定。因此,如果您想在同一线程上同步处理事件,就可以使用它们。
Handler是一个Android类...您可以使用它将消息和可运行对象从引发事件的线程(例如“下载完成”)传递到需要处理它的线程(例如UI线程)。