2017-01-15 1 views
1

У меня проблема с serius. В моей Android приложений у меня есть этот код:Android getExtras() при нажатии на уведомление в Android

Класс: MessagingService.class

public void onMessageReceived(RemoteMessage remoteMessage) { 
String title = remoteMessage.getNotification().getTitle(); 
String messaggio =remoteMessage.getNotification().getBody(); 
String data = remoteMessage.getData().get("json"); 

JSON json = new JSON(); 
String fragment = json.getNotificaFragment(data); 

Log.d("MessagingService","Fragment Ricevuto: " + fragment); 


int requestID = (int) System.currentTimeMillis(); 


Intent intent = new Intent(this, LoginActivity.class); 
intent.putExtra("fragment", fragment); //Put your id to your next Intent 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP); 
PendingIntent pendingIntent = PendingIntent.getActivity(this, requestID, intent, PendingIntent.FLAG_ONE_SHOT); 
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this); 
notificationBuilder.setContentTitle(title); 
notificationBuilder.setContentText(messaggio); 
notificationBuilder.setSmallIcon(R.mipmap.ic_launcher); 
notificationBuilder.setVibrate(new long[] { 500, 500 }); 
notificationBuilder.setSound(Settings.System.DEFAULT_NOTIFICATION_URI); 
notificationBuilder.setAutoCancel(true); 
notificationBuilder.setContentIntent(pendingIntent); 
notificationBuilder.setDefaults(Notification.DEFAULT_VIBRATE | Notification.DEFAULT_SOUND | Notification.FLAG_SHOW_LIGHTS); 


NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
notificationManager.notify(0, notificationBuilder.build()); 

super.onMessageReceived(remoteMessage); 

}

Класс: LoginActivity.class

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_login); 
    Log.d("APP", "AVVIO APPLICAZIONE"); 

    String fragmentDaAprire = getIntent().getStringExtra("fragment"); 
    Log.e("Bundle","Fragment da Aprire: " + fragmentDaAprire); 

Проблема заключается в том:

Если i получать уведомления и мое приложение открыть результат руды правильно:

 
    01-15 15:09:12.301 11419-11419/livio.***E/Bundle: Fragment da Aprire: messaggi 

Если я получить уведомление и мое приложение CLOSE, когда я нажимаю на уведомление результат НЕПРАВИЛЬНО :(

 
    01-15 15:09:12.301 11419-11419/livio.*** E/Bundle: Fragment da Aprire: null 

Спасибо за помощь

+0

использование getIntent() getExtras() – Nas

+0

мне очень жаль, но не работает. –

ответ

0

Вы должны проверить этот оператор. Строковый фрагмент = json.getNotificaFragment (data) ;. Это неправильно заполняется.

0

Попробуйте это:

Intent iin = getIntent(); 
     Bundle b = iin.getExtras(); 
     if (b != null) { 
      fragmentDaAprire= (String) b.get("fragment"); 
     } 

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

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