2016-03-03 5 views
0

У меня есть простое приложение для Android, которое не делает ничего особенного, кроме получения и отображения уведомлений GCM, а затем - открытия браузера (при нажатии на уведомление).gcm вызывает большое использование батареи

GCM сконфигурирован как описано в текущей документации. Браузер основан на классе WebViewClient.

Я заметил, что это приложение потребляет в 4 или 5 раз больше батареи, чем любое другое приложение, установленное на моем телефоне. Насколько я понимаю, всегда работает BroadcastReceiver, что может привести к чрезмерному использованию батареи.

Можно ли его уменьшить? Иногда мой смартфон становится действительно горячим без каких-либо действий с моей стороны.

Фрагмент моего манифеста о GCM:

<receiver 
     android:name="com.google.android.gms.gcm.GcmReceiver" 
     android:exported="true" 
     android:persistent="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" /> 
      <action android:name="my.package" /> 
      <category android:name="my.package" /> 
     </intent-filter> 

</receiver> 

Спасибо заранее.

ответ

0

Возможно, лучшее, что вы можете сделать, это реализовать GCM (Google Cloud Messaging), используя pushing вместо опроса.

Таким образом, вы сможете получить «щекотку», когда произойдет что-то новое, и вы узнаете, когда спросите сервер о датах.

+0

Как его настроить? Я использую уже GCM. где я должен написать статью в режиме публикации публикации? – user2957954

+0

@ user2957954 https://possiblemobile.com/2013/09/push-dont-poll-how-to-use-gcm-to-update-app-data/ ознакомьтесь с этим. –