2015-11-06 114 views
0

我目前正在開發移動應用程序和休息服務。即使不需要更新並且數據沒有更改,移動應用程序也可以執行大量的服務調用。爲了消除這種休息調用的開銷,我打算實施GCM(Google Cloud Messaging)。移動應用程序中的數據刷新策略

我的策略會是以下幾點:

加載應用程序啓動所需的所有數據。在服務器端識別到數據更改時,推送通知將通過GCM發送到受影響的設備,以便部分刷新數據(通過特定的其他呼叫)。這樣做的好處是減少了服務方面的開銷,因爲在我看來,沒有不必要的休息電話和更流暢的用戶體驗。缺點是應用程序依賴於GCM消息,並且他們及時到達。

我不確定這是否是正確的策略。有人可能會指出我的方向是否正確,並告訴我這是否是一種好的做法?

回答

0

我們可以回答細節之前使用的詳細信息...

我不能確定這是否是這個正確的戰略。有人可能會指出我的方向是否正確,並告訴我這是否是一種好的做法?

我會考慮給予一個總體答案的緣故:

A - 用戶並不總是與應用「在線」,既沒有網絡,甚至沒有慾望有過一次更新信息倍。

B - 用戶是eletronicaly litterate足夠了解程序的困難。

有了這些想法,那麼這將是一個很好的做法是:

民意調查相關數據,存儲在本地。在這個階段,人們會考慮用戶擁有和存儲的相關信息,並附上日期標誌。

一旦一個標誌變爲「老」(低於您的閾值),重新查詢該數據。

操作遵循2條指令......當觀察數據時,檢查它的狀態,顯示用戶是否最近,如果沒有,則輪詢它。如果是,如果用戶選擇操作(主要是POST),則重新查詢數據。

這樣,如果用戶沒有在前臺應用程序,則沒有靜態開銷。另外,他們應該使用你的「永遠在線應用程序」,他們明白網絡是必要的。

+0

我提到的數據會經常由移動應用的用戶更新。部分應用程序需要向用戶顯示最近的數據(投票系統)。對不起,忘了在我的問題中提供這些信息。問題是我無法提供像你所建議的標誌,因爲我不知道數據何時應該更新。 – Marcel

+0

整體觀念沒有改變。在使用期間,當應用程序正在執行時(主要是在活動中),用戶將只能看到一組子信息,因此,您繼續對那些他看到的,下一個預期的組和以前看過的小組...這樣,假設用戶在電影院裏看電影,如果電影按字母排序,然後檢查當前字母+上一個字母和下一個字母。如果按區域排序,則檢查附近的電影院數據等。 – Bonatti

+0

好吧,我想我明白了。你的意思是調用rest服務並將結果與​​設備上當前存儲的結果進行比較,當用戶對過期數據執行操作時執行刷新? – Marcel