android map数据更新数据,仅当Android中的HashMap数据发生更改时才将数据发送到服务器...

我过去一周一直在研究这个逻辑,但没有运气。任何人都可以帮助我吗?所以我遇到的问题是我正在使用信标概念(Moko Beacon)使用bindService来扫描信标,直到应用程序被销毁。所以我一直得到信标数据。

这是我的代码:

public class MainActivity extends AppCompatActivity implements

MokoScanDeviceCallback {

private MokoService mMokoService;

private HashMap beaconXInfoHashMap;

public ArrayList beaconXInfos;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

bindService(intent, mServiceConnection, BIND_AUTO_CREATE);

beaconXInfoHashMap = new HashMap<>();

beaconXInfos = new ArrayList<>();

}

public void onScanDevice(DeviceInfo device) {

final BeaconXInfo beaconXInfo = beaconXInfoParseable.parseDeviceInfo(device);

if (beaconXInfo == null) {

return;

}

beaconXInfoHashMap.put(beaconXInfo.mac, beaconXInfo);

updateDevices();

}

问题出在updateDevices()方法中,我不断获取值,直到我销毁应用程序。日志值如下:

E/beaconXinfo: [BeaconXInfo{name='BeaconX', mac='F5:5E:B1:65:94:4B'}]

E/beaconXinfo: [BeaconXInfo{name='BeaconX', mac='F5:5E:B1:65:94:4B'}, BeaconXInfo{name='UFO', mac='55:46:4F:D2:72:5A'}]

E/beaconXinfo: [BeaconXInfo{name='BeaconX', mac='F5:5E:B1:65:94:4B'}, BeaconXInfo{name='UFO', mac='55:46:4F:D2:72:5A'}, BeaconXInfo{name='null', mac='C8:DE:FE:45:50:02'}] //change in the data

如上所示,只有当hashmap中的数据发生更改时,我希望将数据发送到服务器的最后一个日志中的数据发生更改。

所以首先我发送数据“F5:5E:B1:65:94:4B”,因为只有一个值。接下来,我需要将此hashmap与下一个hashmap进行比较,其中数据发生了变化,称为“55:46:4F:D2:72:5A”。我需要发送这些数据而忽略“F5:5E:B1:65:94:4B”。

与此相同,如何仅将此“C8:DE:FE:45:50:02”值与之前的hashmap相比较发送到服务器。

那么如何将hashmap数据的第一个日志与下一系列hashmap数据进行比较,我只能获取最新值并将其发送到服务器。

我在发布之前已经研究过一堆问题,如下所示:

如何从Android中的arraylist中删除重复值

如何从ArrayList中删除重复的元素?

从Java中删除HashMap中的重复值

也许我可能会对我在代码中使用的上述内容感到困惑。

如果需要在代码中添加任何内容,请在下面发表评论。任何建议和答案将受到高度赞赏。提前致谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值