溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么在Android 中實現(xiàn)微博點贊功能

發(fā)布時間:2021-05-22 16:48:54 來源:億速云 閱讀:164 作者:Leah 欄目:移動開發(fā)

這篇文章將為大家詳細(xì)講解有關(guān)怎么在Android 中實現(xiàn)微博點贊功能,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

private Timer mTimer;//定時器 
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ù)

       自身封裝一個單列的管理類: 

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

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

public void addReport(String userId, long aId, int state) { 
  stopTask();//停止定時器 
  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隊列已經(jīng)有但還沒被處理 
     sendMsg(mThreadHandler, 0, userId, aId, state);//把任務(wù)加到子線程 
  } 
  map.put(aId, state);//記錄要提交的內(nèi)容點贊狀態(tài) 
}

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

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

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

                                  否則開啟定時器,定時把線程終止掉.

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

Android是什么

Android是一種基于Linux內(nèi)核的自由及開放源代碼的操作系統(tǒng),主要使用于移動設(shè)備,如智能手機和平板電腦,由美國Google公司和開放手機聯(lián)盟領(lǐng)導(dǎo)及開發(fā)。

關(guān)于怎么在Android 中實現(xiàn)微博點贊功能就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI