应用内通知

时间:2016-12-08 14:19:25

标签: android notifications

当应用程序启动时,它会从数据库中检索数据。如果有新数据,我希望应用程序显示应用程序内通知(横幅)以警告用户。

目前我实施了这个:

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手机上执行此操作?或者我应该以另一种方式向用户显示此信息?

感谢您的宝贵帮助:))

1 个答案:

答案 0 :(得分:2)

您缺少setContentText(),否则它不符合要求。

  

创建通知时,使用NotificationCompat.Builder对象指定UI内容和操作。至少,Builder对象必须包含以下内容:

  • 由setSmallIcon()
  • 设置的小图标
  • 标题,由setContentTitle()
  • 设置
  • 详细文本,由setContentText()
  • 设置

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