В этом году я довольно много работал с C2DM и видел проблему, которую вы описываете.Я также слышал, что это происходит с устройствами iOS.Иногда я обнаруживаю, что при сбое push-сообщения устройство переключается в режим «В самолете» и снова возвращается в исходное состояние, чтобы снова включить прием push-сообщения.
Но в любом случае в нашем случае решение было двояким:
Замените устройство тем, которое могло бы поддерживать соединение push-сообщений через Wi-Fi.В нашем случае у нас было тестовое устройство, которое было особенно подвержено этой проблеме.
Создание механизма опроса в качестве (медленной) резервной копии для C2DM.Это, очевидно, означает больше усилий, больше кода, больше заряда батареи и данных, но в нашем случае получающееся в результате приложение очень надежно, даже с некоторыми проблемами с C2DM.
Мой опытв том, что C2DM в целом хорош, и когда он работает, он очень, очень быстрый, но он дает сбой примерно в 5-10% случаев по целому ряду причин, и поэтому любое приложение, которое полностью полагается на него, может оказаться ненадежным.
Вы не можете использовать 3G и Wi-Fi одновременно - устройство будет подключаться к одной сети одновременно.
Если ваше приложение должно на 100% получать сообщения, я думаю,у вас нет выбора, кроме как создать собственный опрос, но, возможно, провести медленный опрос, чтобы уменьшить использование ресурсов, поэтому ваше приложение всегда работает, но push просто добавляет преимущество в скорости.