2016-12-08 1 views
1

При запуске приложения он извлекает данные из базы данных. Если есть новые данные, я хочу, чтобы приложение отображало уведомление в приложении (баннер), чтобы предупредить пользователя.In-app Notification

На данный момент я реализовал это:

if (!taskToNotify.isEmpty()) { 
      //Notification builder 
      NotificationCompat.Builder builder = new NotificationCompat.Builder(mContext); 
      builder.setAutoCancel(true); 
      builder.setSmallIcon(R.drawable.ic_event_notification); 
      builder.setContentTitle(taskToNotify.get(0).getName() + mContext.getString(R.string.notification_content_task)); 
      builder.setDefaults(Notification.DEFAULT_VIBRATE | Notification.DEFAULT_SOUND); 

      // inbox style 
      NotificationCompat.InboxStyle inboxStyle = new NotificationCompat.InboxStyle(); 
      inboxStyle.addLine(mContext.getString(R.string.notification_detail_date) + taskToNotify.get(0).dueDateToString()); 
      inboxStyle.addLine(mContext.getString(R.string.notification_detail_location) + taskToNotify.get(0).getLocationName()); 

      // Moves the expanded layout object into the notification object. 
      builder.setStyle(inboxStyle); 


      mAdapter.notifyDataSetChanged(); 

      builder.build(); 
     } 

Но это не работает на данный момент. При запуске кода не отображается уведомление.

Есть ли возможность сделать это на телефоне Android? Или я должен еще один способ отобразить эту информацию пользователю?

Благодарит Вас за драгоценную помощь :)

ответ

2

Вы отсутствующий setContentText() в противном случае он не удовлетворяют требования.

При создании уведомления укажите содержимое пользовательского интерфейса и действия с объектом NotificationCompat.Builder. На минимум, объект Builder должен включать в себя следующее:

  • Небольшой значок, установленный setSmallIcon()
  • название, установленного setContentTitle()
  • Подробный текст, установленный setContentText ()

https://developer.android.com/training/notify-user/build-notification.html