国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android 仿微博的點(diǎn)贊功能的實(shí)現(xiàn)原理(持續(xù)點(diǎn)贊再取消)

2019-12-12 01:07:24
字體:
供稿:網(wǎng)友

 產(chǎn)品需求,實(shí)現(xiàn)類似微博的持續(xù)點(diǎn)贊再取消功能,因?yàn)樽约阂才紶査⑽⒉瑢?duì)這功能有一定的使用上的了解,

       至于微博點(diǎn)贊的具體實(shí)現(xiàn)我并不知道,微博點(diǎn)贊在斷網(wǎng)的情況下依然能點(diǎn)贊,不會(huì)提示網(wǎng)絡(luò)異常,等有網(wǎng)絡(luò)之后

       重新刷新,實(shí)際是沒有點(diǎn)贊的,那就針對(duì)這現(xiàn)象去實(shí)現(xiàn)吧.

            避免并發(fā),減少CPU壓力,我個(gè)人會(huì)想到 HandlerThread ,不懂可以自行科普,這里只說我實(shí)現(xiàn)的點(diǎn)贊功能原理.

private Timer mTimer;//定時(shí)器 private TimerTask mTask; mMap = new HashMap<>(); mMainHandler = new MainHandler();//處理主線程任務(wù) mHandlerThread = new HandlerThread("praise_thread"); mHandlerThread.start();//start()必須要在getLooper()前調(diào)用 mThreadHandler = new ChildThreadHandler(mHandlerThread.getLooper());//處理子線程任務(wù) 

       自身封裝一個(gè)單列的管理類: 

private Map<String, Map<Long, Integer>> mMap;//基于自身需求實(shí)現(xiàn)一個(gè)點(diǎn)贊的消息管理器,我這里第一個(gè)key是用戶,第二個(gè)key是內(nèi)容的唯一ID

       把點(diǎn)贊消息存放在管理器和加入任務(wù)隊(duì)列

public void addReport(String userId, long aId, int state) {   stopTask();//停止定時(shí)器   init();//初始化操作   Map<Long, Integer> map;   if (mMap.containsKey(userId)) {//這是處理用戶key     map = mMap.get(userId);   } else {     map = new Hashtable<>();//避免重復(fù),自行科普     mMap.put(userId, map);   }   if (!map.containsKey(aId)) {//如果存在說明handler隊(duì)列已經(jīng)有但還沒被處理      sendMsg(mThreadHandler, 0, userId, aId, state);//把任務(wù)加到子線程   }   map.put(aId, state);//記錄要提交的內(nèi)容點(diǎn)贊狀態(tài) } 

    子線程消息處理:上報(bào)用戶操作的消息,把上報(bào)結(jié)果發(fā)回給主線程

     主線程消息處理 :  取出map里面對(duì)應(yīng)的值和上報(bào)結(jié)果比較,

                               1.存在一致性,則移除map中對(duì)應(yīng)的key-value,再斷map是否還有消息沒有上報(bào),

                                  否則開啟定時(shí)器,定時(shí)把線程終止掉.

                               2.非一致性,則重新向子線程發(fā)送上報(bào)消息.

總結(jié)

以上所述是小編給大家介紹的Android 仿微博的點(diǎn)贊功能的實(shí)現(xiàn)原理(持續(xù)點(diǎn)贊再取消),希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)武林網(wǎng)網(wǎng)站的支持!

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 深州市| 信宜市| 兴业县| 元朗区| 淮南市| 梓潼县| 怀化市| 苏尼特右旗| 峨山| 莒南县| 阿坝| 惠安县| 长垣县| 长阳| 泰顺县| 四川省| 武乡县| 桐庐县| 东丰县| 陈巴尔虎旗| 怀宁县| 彭水| 临武县| 讷河市| 科尔| 高尔夫| 凌源市| 白银市| 舟山市| 讷河市| 铜山县| 奈曼旗| 芜湖县| 登封市| 开封县| 海盐县| 静宁县| 巫溪县| 钦州市| 祁门县| 泾源县|