2016-01-21 3 views
2

Моя проблема в том, что мне нужно, чтобы мое приложение всегда бодрствовало, чтобы получать уведомления, потому что я хочу создать приложение для чата, такое как whatsapp, но когда приложение закрыто, уведомления не работают, я прочитал http://developer.android.com/intl/es/guide/components/services.html и http://developer.android.com/intl/es/guide/components/processes-and-threads.html, и я подумал, что если я создал другой процесс с андроидами: атрибутом процесса на GcmListenerService я мог угаснуть службу, но это не сработалокак держать всегда бодрствующий GcmListenerService на Android?

другого пути, который я думал, был перекрывая onStartCommand метода из GcmListenerService и вернуть START_STICKY постоянного

@Override 
public int onStartCommand(Intent intent, int flags, int startId) { 

    return START_STICKY; 
} 

, но проблема с этим способом заключается в том, что GcmListenerService имеет onStartCommand с окончательным, поэтому я не могу переопределить этот метод

поэтому на документации по android нет решения этой проблемы?

Единственное решение, которое я могу найти, это перейти к настройке на моем мобильном телефоне, а после этого перейти к энергосбережению ----> защищенным приложениям и проверить приложение, чтобы мое приложение работало, даже когда мое приложение было закрыто

У кого-нибудь есть решение этой проблемы? благодаря

Edit # 2

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="schan.main" 
    > 
    <uses-sdk android:minSdkVersion="15" android:targetSdkVersion="17"/> 
    <permission android:name="schan.main.permission.C2D_MESSAGE" 
     android:protectionLevel="signature" /> 
    <uses-permission android:name="schan.main.permission.C2D_MESSAGE" /> 
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> 
    <uses-permission android:name="android.permission.WAKE_LOCK" /> 
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 
    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/Theme.Schan"  > 
     <activity 
      android:name=".MainActivity" 
      android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <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" /> 

       <category android:name="schan.main" /> 
      </intent-filter> 
      <action android:name="com.google.android.c2dm.intent.REGISTRATION" /> 
     </receiver> 
     <service 
      android:name="schan.main.MyGcmListenerService" 
      android:exported="false"> 
      <intent-filter> 
       <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 
       <action android:name="android.intent.action.BOOT_COMPLETED"/> 
      </intent-filter> 
     </service> 
     <service 
      android:name="schan.main.MyInstanceIDListenerService" 
      android:exported="false"> 
      <intent-filter> 
       <action android:name="com.google.android.gms.iid.InstanceID" /> 
      </intent-filter> 
     </service> 
     <service 
      android:name="schan.main.RegistrationIntentService" 
      android:exported="false"> 
     </service> 
     <activity 
      android:name=".LoginActivity" 
      android:icon="@mipmap/ic_launcher" 
      android:label="@string/login" 
      android:parentActivityName=".MainActivity" 
      android:theme="@style/Theme.Schan" > 
      <meta-data 
       android:name="android.support.PARENT_ACTIVITY" 
       android:value="schan.main.MainActivity" /> 
     </activity> 
     <activity 
      android:name=".SigupActivity" 
      android:label="@string/joinus" 
      android:parentActivityName=".MainActivity" > 
      <meta-data 
       android:name="android.support.PARENT_ACTIVITY" 
       android:value="schan.main.MainActivity" /> 
     </activity> 
     <activity 
      android:name=".Alert" 
      android:theme="@android:style/Theme.Translucent.NoTitleBar" 
      android:label="@string/title_activity_alert_dialog" > 
     </activity> 
    </application> 
</manifest> 

UPDATE

я нашел мою реальную проблему, это один how can i put this configuration on my huawei cellphone?

+1

Ваш 'GcmReceiver' должен запускаться, даже если приложение закрыто. Я на самом деле тестирую это прямо сейчас, с настройкой, как и у вас, и работает для меня. Покажите, как выглядит ваш класс 'GcmReceiver'. –

+0

@ DanielNugent спасибо за ваш ответ, на моем мобильном телефоне не работает, это работает только в том случае, если мое приложение открыто или если оно находится в фоновом режиме, но если это полностью закрыто, я не получаю уведомление – hvar90

+0

@ DanielNugent i dont есть класс GcmReceiver, который я использовал пакет com.google.android.gms.gcm.GcmReceiver у меня есть класс GcmListenerService – hvar90

ответ

0

Ну вот что радиовещательный приемник Мента делать. Вы, вероятно, забыли или не обнаружили что-то, связанное с получателем, но вы не предоставили достаточно кода, поэтому его трудно было рассказать.

Я также предлагаю вам попробовать сузить проблемы, с которыми вы сталкиваетесь. Вы не можете предположить, что настройки телефона являются последним решением. Android и Google разработали отличную платформу для вас, поэтому используйте ее ...

+0

благодарит вас за ответ, я отредактировал свой ответ, и я поставил код из своего манифеста.xml мой код похож на пример из документации по Android, когда я сказал о настройках телефона, я имел в виду, что это решение, но я ищу решение для Android, извините за недоразумение – hvar90