Monday, February 13, 2012

Android Push Notification推播機制(6)-[狀況2]手機在待機下

撰寫時間︰2012/02/13 13:15
更新時間︰2012/02/14 13:48
文章更新次數︰1

以下內容由Google I/O 2010 - Building push applications for Android 29:55 翻譯擷取
 
一、前言
在發送message給手機時,
並不一定永遠都要像第1篇的方式 - 直接喚醒手機,然後傳送訊息。
想像一下,
如果今天朋友他們在什麼地方用Facebook打了卡、
或者一些不重要的即時訊息不斷傳給你,
於是你的手機就不斷地被喚醒,
這種行為幾乎可以說是"擾民"!

因此,
C2DM提供了當手機閒置中延遲發送(Delay While Idle)的機制
附帶一提,
該機制也是Attenuation機制的其中一環。


C2DM API中,
對於delay_while_idle值,給予了這樣的定義︰
If included, indicates that the message should not be sent immediately if the device is idle. The server will wait for the device to become active, and then only the last message for each collapse_key value will be sent. Optional.
如果使用這個值,當手機在閒置狀態下,訊息就不會馬上被傳至手機中。C2DM會等到手機再度被開啟時,才將在App Server裡對應到的collapse key值的最後一筆message發送至手機。這個值是可以選擇性使用的。

二、文章開始

我們來看看延遲發送機制(Delay While Idle)是如何運作的吧︰

1.一樣,我們透過App Server,通知C2DM現在想要發一則訊息。

2.C2DM也如往常的將訊息儲存至後端。

3.也順便將訊息丟給Connect Server

4.不同的是,Connect Server在此時卻將訊息保留住了。

5.直到使用者開啟了手機螢幕,Connect Server才將訊息傳送給手機。

三、總結
從上面的流程圖中,
我們知道了當手機在待機模式時,
Delay While Idle的使用能有效的在閒置的手機底下,
傳達訊息給手機無誤,
也不用一直喚醒手機,
減少電量消耗。

下一篇︰
Android Push Notification推播機制(7)-[實例分享]以Chrome to Phone為例

相關文章︰
Android Push Notification推播機制(1)-簡介篇
Android Push Notification推播機制(2)-實務篇
Android Push Notification推播機制(3)-collapse key
Android Push Notification推播機制(4)-[狀況1]手機在飛航模式下
Android Push Notification推播機制(5)-Attenuation
Android Push Notification推播機制(8)-問答篇
官方技術公報 - Android Cloud To Device Messaging


No comments: