二阶段开发冲刺五
今天开发缘分匹配,这个匹配方式就是同时点击的用户才可能匹配的到,基本思路就是有一个用户库,当用户点击时放进去,匹配或者一定时间匹配不到自动删除
结果图:
这个是现在没有人跟我一起点
代码:
//5.4缘分 private void fateUser() { BmobManager.getInstance().addFateSet(new SaveListener<String>() { @Override public void done(final String s, BmobException e) { if(e==null) { mDisposable=Observable.interval(1,TimeUnit.SECONDS) .subscribe(new Consumer<Long>() { @Override public void accept(Long aLong) throws Exception { queryFateSet(s); } }); } } }); } //查询FateSet private void queryFateSet(final String s) { BmobManager.getInstance().queryFateSet(new FindListener<FateSet>() { @Override public void done(List<FateSet> list, BmobException e) { FateNumber++; if(e==null) { if(CommonUtils.isEmpty(list)) { //大于1才行,1 是自己 if(list.size()>1) { disposable(); //过滤自己 for(int i=0;i<list.size();i++) { if(list.get(i).getUserId().equals(meUserId)) { list.remove(i); break; } } int r=mRandom.nextInt(list.size()); onPairResultListener.OnPairListener(list.get(r).getUserId()); deleteFateSet(s); FateNumber=0; } else { LogUtils.i("FateNumber"+FateNumber); if(FateNumber>=10) { disposable(); deleteFateSet(s); onPairResultListener.OnPairFailListener(); FateNumber=0; } } } } } }); } //删除自己FateSet private void deleteFateSet(String id) { BmobManager.getInstance().deleteFateSet(id, new UpdateListener() { @Override public void done(BmobException e) { if(e==null) { LogUtils.i("Delete"); } } }); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!