2

Мне нужно использовать уведомление с событием click, у меня есть метод уведомления, но этот метод не открывает мою активность.Как я могу открыть Activity, когда уведомление нажимает

Мой код:

private void sendNotification(String msg) { 

     NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) 
     .setContentTitle("EXX") 
     .setSmallIcon(R.drawable.ic_launcher) 
     .setStyle(new NotificationCompat.BigTextStyle() 
     .bigText(msg)) 
     .setContentText(msg)   
     .setOngoing(true);   
    mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build()); 
}  

это возможно,

спасибо.

+3

Возможный дубликат [Открыть приложения после нажатия на Notification] (http://stackoverflow.com/questions/ 13716723/open-application-after-click-on-notification) –

+0

Не дубликат. OP просто отсутствует 'setContentIntent()' –

ответ

3

Да, это возможно.

Измените свой метод;

private void sendNotification(String msg) { 
    Intent intent = new Intent(this, MainActivity.class); 
    intent.putExtra("yourpackage.notifyId", NOTIFICATION_ID); 
    PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, 
      PendingIntent.FLAG_UPDATE_CURRENT); 
    NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) 
      .setContentTitle("EXX") 
      .setSmallIcon(R.drawable.ic_launcher) 
      .setStyle(new NotificationCompat.BigTextStyle() 
      .bigText(msg)) 
      .addAction(getNotificationIcon(), "Action Button", pIntent) 
      .setContentIntent(pIntent) 
      .setContentText(msg) 
      .setOngoing(true); 
    mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build()); 
} 

и добавить свой mainactivity

NotificationManager notificationmanager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 

этот код работает.

+0

oh спасибо! этот код работает на меня! я люблю тебя, братан. <3 –

+0

добро пожаловать. –

4

Эй @John это очень просто

вы просто должны сделать

Intent intent = new Intent(this, ResultActivity.class); 

... // Поскольку щелкнув уведомление открывает новый ("специальный") активность, есть // нет необходимости создавать искусственный задний стек.

PendingIntent pendingIntent = TaskStackBuilder.create(getApp()) 
      .addNextIntent(intent) 
      .getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT); 

И ожидающее Намерение в mBuilder

private void sendNotification(String msg) { 
     NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) 
     .setContentTitle("EXX") 
     .setSmallIcon(R.drawable.ic_launcher) 
     .setStyle(new NotificationCompat.BigTextStyle() 
     .bigText(msg)) 
     .setContentText(msg)   
     .setOngoing(true);  
     .setContentIntent(pendingIntent) 
    mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build()); 
} 

и вы сделали :)

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

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