今天开发缘分匹配,这个匹配方式就是同时点击的用户才可能匹配的到,基本思路就是有一个用户库,当用户点击时放进去,匹配或者一定时间匹配不到自动删除
结果图:
这个是现在没有人跟我一起点
代码:
//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"); } } }); }