2016-06-20 5 views
0

Для Google Cloud Messaging приложение, которое должно получать уведомления, должно быть запущено на переднем плане или в фоновом режиме для обработки сообщения с уведомлением о нажатии?Google Cloud Messaging с Android

ответ

1

Его вообще не нужно запускать, поэтому вы добавляете широковещательный приемник (, который будет работать, даже если ваше приложение не активно) в манифесте. Когда система получает нисходящее сообщение, этот приемник запускает компонент (часто это Служба, которая будет обрабатывать входящий поток).

<receiver 
    android:name="com.google.android.gms.gcm.GcmReceiver" 
    android:exported="true" 
    android:permission="com.google.android.c2dm.permission.SEND" > 
    <intent-filter> 
     <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 
     <action android:name="com.google.android.c2dm.intent.REGISTRATION" /> 
     <category android:name="YOUR_PACKAGE_NAME" /> 
    </intent-filter> 
</receiver> 
1

Нет

Ваше приложение просто необходимо зарегистрироваться для трансляции. Обычно это работает следующим образом:

Существует соединение сокетов, установленное между сервером Google и службой GCM, запущенной в вашем приложении. Поэтому, когда вы хотите отправить push-уведомление в свое приложение, просто попросите Google push-сервер нажать сообщение клиенту. Сервер записывает сообщение в сокет, и служба в конце клиента просто отправляет широковещательную передачу. Ваш широковещательный приемник при приеме вызывается, а затем запускается ваше приложение.

Преимущество в том, что каждое приложение не должно поддерживать постоянное соединение сокета с сервером для обновлений в реальном времени.

Подумайте о том, как следует активировать блокировку бодрствования, если вы планируете использовать GCM и выполнять тяжелую операцию в фоновом режиме после получения нажатия.