2016-11-16 1 views
0

У меня есть проблема с уведомлениями. У меня есть сервис в моем приложении, который слушает сообщения от Firebase. Вот мой код:Уведомление имеет другое поведение, когда приложение имеет фоновые настройки

public class FirebaseMessagingService extends com.google.firebase.messaging.FirebaseMessagingService { 

@Override 
public void onMessageReceived(RemoteMessage remoteMessage) { 
    // super.onMessageReceived(remoteMessage); 

    Log.d(TAG, "From: " + remoteMessage.getFrom()); 

    // Check if message contains a data payload. 
    if (remoteMessage.getData().size() > 0) { 
     Log.d(TAG, "Message data payload: " + remoteMessage.getData()); 
    } 

    displayNotification(remoteMessage.getNotification().getBody()); 
} 


private void displayNotification(String message) { 
if (message.contains("upgrade")) { 
     upgradeClient(message); 
    } 

} 

private void upgradeClient(String message) { 

    final String appPackageName = getString(R.string.app_package); 
    String url; 
    try { 
     url = "market://details?id=" + appPackageName; 
    } catch (final Exception e) { 
     url = "https://play.google.com/store/apps/details?id=" + appPackageName; 
    } 

    //Open the app page in Google Play store: 
    final Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); 


    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); 


    Uri notificationSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 

    NotificationCompat.Builder builder = new NotificationCompat.Builder(this) 
      .setAutoCancel(true) 
      .setContentTitle(getResources().getString(R.string.app_name)) 
      .setContentText(message) 
      .setSmallIcon(R.drawable.ic_local_notification) 
      .setSound(notificationSound) 
      .setContentIntent(pendingIntent); 

    NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 
    manager.notify(0, builder.build()); 

} 

}

Когда приложение на передний план, уведомление делает именно он должен делать (в данном случае, принимает пользователя в игровой магазин). Проблема заключается в том, когда приложение задумано. При нажатии на уведомление во время фонового подключения приложение запускает приложение, и пользователь не берется за воспроизведение в магазине. UpdateClient() даже не вызывается! Заранее спасибо!

+0

проверить, получаете ли вы посыльную или нет –

+0

Hi jitesh mohite. Вы правы, я не получаю сообщение. Пожалуйста, отправьте свой комментарий в качестве ответа, и я его приму. Thank you mate –

+0

сделано. спасибо за это –

ответ

1

пожалуйста, проверьте сообщение, если вы получаете в службе

Строка сообщение может быть пустым.

private void displayNotification(String message) { 
if (message.contains("upgrade")) { 
     upgradeClient(message); 
    } 

} 
+0

вы можете прочесть anser –

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

  • Нет связанных вопросов^_^