2016-12-30 45 views
0

我有在線音樂應用程序。從mysqli服務器策略檢查按鈕的Android幫助

我的應用程序有1個listview和1個片段播放器頁面。

播放頁面有一個像按鈕(2狀態):

  • 像(紅色心臟圖標)
  • 沒有像(白心臟圖標)

我的方法是檢查像mysqli數據庫服務器使用通過向服務器發送post請求並獲得json響應包括(0-> false或1-> true)。虛假意味着不喜歡和真正意味着喜歡。

現在,對於每個請求並打開播放器片段,將此請求發佈到服務器進行檢查。請求數太多,我的服務器不休息:\

我的方法不值得:

像Instagram這樣的方法和Facebook應用程序喜歡檢查什麼是?

回答

0

你不必這樣做。 Facebook或其他大型社交媒體公司做的事情是他們在從服務器請求JSON的同時包含像狀態一樣。所以你需要添加JOIN邏輯到你的sql查詢中。您每次請求JSON數據爲您的ListView時候你的JSON數據將是這樣的:

{ 
    .... //all of yours json data 
    likeState : "true" 
} 

然後,你需要將這些數據傳遞到意圖,如果你使用活動顯示從當前列表中的項目,或者如果您詳細使用片段,您可以按照此link關於如何將數據從活動發送到片段。檢查是否像StateState是真的,那麼你知道還有什麼要做,而不是每次打開你的碎片時都要保留來自服務器的請求數據。

+0

你的回答很有幫助,謝謝。在你看來,在查詢中使用'JOIN'(加入喜歡錶的音樂表)要獲得歌曲列表,很困難且昂貴嗎?或者這種方式更好? - >我沒有使用JOIN獲取listview數據,並且只有在片段播放器頁面中,我每次打開片段時都會用post請求進行檢查? – frzdno

+0

'JOIN'不貴嗎? – frzdno

+0

沒有。我的朋友在一家大型科技公司工作,他們對100行代碼的查詢大部分是JOIN和子查詢。順便說一句,當你熟悉它時很容易使用,但是你需要在兩個表中都有關聯列,例如你需要加入。 MUSIC TABLE ID,LIKE TABLE music_id然後你可以相互引用來知道哪些音樂是一樣的。如果真的那麼昂貴的mysql甚至不會爲我們構建這個函數。 –