2016-05-13 4 views
0

Я использую push-уведомления, и они работают нормально, когда я внутри приложения. Но когда приложение находится в фоновом режиме. При поступлении уведомления, мне это нужно, чтобы перейти к onMessageRecieved, потому что я ставлю условие, например:Не собирается onMessageRecieved, когда приложение закрыто

public class MyGcmListenerService extends GcmListenerService { 

private static final String TAG = "MyGcmListenerService"; 
@Override 
public void onMessageReceived(String from, Bundle data) { 
    String message = data.getString("message"); 
    String type = data.getString("type"); 
    Log.d(TAG, "From: " + from); 
    Log.d(TAG, "Message: " + message); 
    Log.d(TAG, "Type: " + type); 
    sendNotification(message, type); 
} 
private void sendNotification(String message, String type) { 
    NotificationCompat.Builder mBuilder = 
      new NotificationCompat.Builder(this); 
    //Set all notifcation properties etc 

    if (type.equals(Constants.GROUP_NOTIFICATION)) { 
     Intent intent = new Intent(this, MainActivity.class); 
     mBuilder.setContentIntent(PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT)); 
    }else { 
     Intent intent = new Intent(this, MainActivity.class); 
     intent.putExtra(Keys.NOTIFICATION_TYPE, Constants.QUESTION_NOTIFICATION); 
     mBuilder.setContentIntent(PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT)); 
    } 
} 
} 

На вопрос Push-уведомления, когда речь идет о mainactivity, проверяя данные о намерении его Шоуда быть перенаправлены на questionActivity, но так как намерения данные никогда не устанавливаются, он остается в mainactivity. Так что мой вопрос: как я могу получить данные из уведомления?

+0

Вы используете услугу GCM? –

+0

отредактировал мой вопрос –

ответ

0

Ну, так как у меня не было ответов на мое сообщение, поэтому я понял проблему самостоятельно. Произошел какой-то поиск и выяснил, что есть два типа полезных нагрузок. Данные и уведомление. И если у вас есть полезная нагрузка уведомления, чем если ваше приложение находится в фоновом режиме. Android создаст само уведомление и не будет вызывать onMEssageRecieved. Поэтому я перешел к моему серверному коду и просто удалил часть полезной информации уведомления :), и теперь он вызван на Messagerecieved.

Смежные вопросы