2016-12-22 4 views
0

Попробуйте так много решений в моем приложении, но до тех пор, пока они не будут работать, нажмите на уведомление для перенаправления на другое действие. Пожалуйста, дайте мне правильное решение для этого, потому что я пробовал так много решений, = true и single top. Мой код прикрепить на эту ссылку, пожалуйста, найти и дать мне РаствораGCM Уведомление перенаправления на активность не сработала

=>https://www.dropbox.com/sh/vguv249ame7zid0/AABDaqjdkMEsFmPagxH3F8U4a?dl=0

Intent resultIntent = new Intent(this, RedirectToLeaderboard.class); 
    resultIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     Random r = new Random(); 
     notifyID = r.nextInt(30000 - 1) + 1; 
     PendingIntent resultPendingIntent = PendingIntent.getActivity(this, notifyID, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT); 
     PendingIntent.getService(getApplicationContext(), 0, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT); 

     NotificationCompat.Builder mNotifyBuilder; 
     NotificationManager mNotificationManager; 

     mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 

     mNotifyBuilder = new NotificationCompat.Builder(this).setSmallIcon(R.mipmap.notification_all_icon).setLargeIcon(BitmapFactory.decodeResource(this.getResources(), R.mipmap.notification_all_icon)); 
     // Set pending intent 
     mNotifyBuilder.setContentIntent(resultPendingIntent); 
     mNotificationManager.notify(notifyID, mNotifyBuilder.build()); 
+0

, какой вид класса это, где вы создаете это уведомление, это деятельность –

+0

GCMNotificationIntentService расширяет GcmListenerService {} –

+0

эта функция или код звонит? , поместите один журнал или тост, чтобы проверить его –

ответ

0
PendingIntent resultPendingIntent = PendingIntent.getActivity(this, notifyID, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT); 
    PendingIntent.getService(getApplicationContext(), 0, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT); 

Замените его

Intent intent = new Intent(getApplicationContext(), YourActivity.class); 
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    PendingIntent resultPendingIntent = PendingIntent.getActivity(getApplicationContext(), REQUEST_CODE, intent, PendingIntent.FLAG_ONE_SHOT); 
+0

этот не работал –

+0

вы вызвали mNotifyBuilder.setContentIntent (resultPendingIntent) ;? –

+0

сделайте gist.github.com и отправьте ссылку –

0

Вы можете проверить handling compatibility на notifications, где было упомянуто, что:

Не все функции уведомлений доступны для конкретной версии, хотя методы их установки находятся в классе библиотеки поддержки NotificationCompat.Builder.

Для обеспечения лучшей совместимости создайте уведомления с помощью NotificationCompat и его подклассов, в частности NotificationCompat.Builder. Кроме того, следуйте этому процессу, когда вы внедряете уведомление:

  1. Предоставьте все функции уведомления всем пользователям, независимо от используемой версии. Для этого убедитесь, что все функции доступны из Activity в вашем приложении. Вы можете добавить новый Activity для этого.
  2. Убедитесь, что все пользователи могут получить доступ к функциям в Activity, путем запуска, когда пользователи нажимают на уведомление. Для этого создайте PendingIntent для Activity. Позвоните setContentIntent(), чтобы добавить PendingIntent к уведомлению.
  3. Теперь добавьте расширенные функции уведомления, которые вы хотите использовать для уведомления. Помните, что любая добавленная вами функциональность должна быть доступна в Activity, которая начинается, когда пользователи нажимают на уведомление.

Надеюсь, что это поможет!

0

Мой код совершенен, я получил мое решение ..

Intent resultIntent = new Intent(this, RedirectToLeaderboard.class); 
    resultIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    Random r = new Random(); 
    notifyID = r.nextInt(30000 - 1) + 1; 
    PendingIntent resultPendingIntent = PendingIntent.getActivity(this, notifyID, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT); 
    PendingIntent.getService(getApplicationContext(), 0, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT); 

    NotificationCompat.Builder mNotifyBuilder; 
    NotificationManager mNotificationManager; 

    mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 

    mNotifyBuilder = new NotificationCompat.Builder(this).setSmallIcon(R.mipmap.notification_all_icon).setLargeIcon(BitmapFactory.decodeResource(this.getResources(), R.mipmap.notification_all_icon)); 
    // Set pending intent 
    mNotifyBuilder.setContentIntent(resultPendingIntent); 
    mNotificationManager.notify(notifyID, mNotifyBuilder.build()); 
+0

вы можете реализовать этот код, легко перенаправить на запуск –

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

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