如果您使用GCM作爲服務器可以把如果可用,這將是力比輪詢高效的網絡,纔會有更新可用時它比及時輪詢好得多使用更新,因爲它會檢查並喚醒它會更好手機只是爲了檢查更新
重要:C2DM已正式棄用2012年6月26日,這意味着C2DM已停止接受新用戶和配額的請求。沒有新的功能將被添加到C2DM。但是,使用C2DM的應用程序將繼續工作。我們鼓勵現有的C2DM開發人員遷移到稱爲Google Cloud Messaging for Android(GCM)的新版C2DM。有關更多信息,請參閱C2DM-GCM遷移文檔。開發人員必須使用GCM進行新的開發。
但你不能用GCM讓你不得不去投票本身可以通過使用警報管理器使用能夠在電源efficiant方式,和不重複
我認爲這是輪詢最佳的電源效率的方式定期
給人一種示例代碼
public class MyScheduleReceiver extends BroadcastReceiver {
// Restart service every 30 sec
private static final long REPEAT_TIME = 1000 * 30 ;
@Override
public void onReceive(Context context, Intent intent) {
AlarmManager service = (AlarmManager) context
.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(context, MyStartServiceReceiver.class);
PendingIntent pending = PendingIntent.getBroadcast(context, 0, i,
PendingIntent.FLAG_CANCEL_CURRENT);
Calendar cal = Calendar.getInstance();
// Start 30 seconds after boot completed
cal.add(Calendar.SECOND, 30);
//
// Fetch every 30 seconds
// InexactRepeating allows Android to optimize the energy consumption
service.setInexactRepeating(AlarmManager.RTC_WAKEUP,
cal.getTimeInMillis(), REPEAT_TIME, pending);
// service.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),
// REPEAT_TIME, pending);
}
}
(有一個more detailed explanation that includes the necessary manifest items)
如果您使用現在稱爲GCM的c2dm,因爲服務器可以推送更新(如果可用的話會比查詢更節能),那會更好:) –
GCM非常棒,但它需要服務器完成一些工作。在我的情況下,這幾乎是不可能的(我已經有服務器,我不能使其符合GcM標準)。我會更新原始帖子以標記此。 –