我的Android应用程序使用在单个类中实现的AltBeacon库,该类扫描预定义区域中的信标并将其存储为静态列表。在我的应用程序的一个活动中,我有一个链接到信标的所有项目的列表,我基本上希望此列表继续根据哪个信标最接近重新排序。我怎么能看到我已经在使用比较器实现并实现这一目标但我想使用一些更明智的性能,比如听众。
现在,我正在做以下事情:
答案 0 :(得分:1)
每次排序列表都没有什么问题。在每个扫描周期中采用它的典型替代方法是将记录插入/更新到自动维护排序顺序的集合中。但是,由于范围内的信标将在每个扫描周期中稍微改变它们的估计距离,因此代码每次都会有效地进行完全重新排序。一句话:您目前正在进行排序的方式可能还不错。
也就是说,第4项可能本身就是一个问题。与诸如排序之类的内存中操作相比,将数据发送到服务器是耗时且资源密集的。你真的需要在每个周期都这样做吗?无论这种情况多久发生一次(它应该尽可能少),我会将发送到服务器的权限卸载到另一个线程,这样就不会减慢UI更新的速度。