【问题标题】:Notification is not displayed using : NotificationCompat.Builder使用通知不显示通知:NotificationCompat.Builder
【发布时间】:2017-01-03 11:05:49
【问题描述】:

我已将mainactivityoncreate 方法中的一个方法调用为调用notification 的方法,但应用启动时未发送通知 MainActivityoncreate方法

      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        recyclerView = (RecyclerView) findViewById(R.id.view);

        getOverflowMenu();
        Decision.notify_user(getApplicationContext());}

Decision.java

public class Decision {
    public final static String YES="Done";
    public final static String NO="SORRY";
    public final static int NOTIFICATIN_ID=1568;

    public static void notify_user(Context context)
    {
        NotificationCompat.Builder builder=new NotificationCompat.Builder(context)
                .setColor(ContextCompat.getColor(context, R.color.colorPrimaryDark))
                .setContentTitle("Have you done it")
                .setContentText("Make sure you do it")
                .setStyle(new NotificationCompat.BigTextStyle().bigText("done"))
                .setContentIntent(contentIntent(context))
                .addAction(decided_yes(context)).addAction(decided_no(context));

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
            builder.setPriority(Notification.PRIORITY_HIGH);
        }
        NotificationManager notificationManager=(NotificationManager)context.getSystemService(context.NOTIFICATION_SERVICE);
        notificationManager.notify(NOTIFICATIN_ID,builder.build());

    }

    public static PendingIntent contentIntent(Context context)
    {
        Intent intent=new Intent(context,MainActivity.class);
        return PendingIntent.getActivity(context,123,intent,PendingIntent.FLAG_UPDATE_CURRENT);
    }

    public static NotificationCompat.Action decided_yes(Context context)
    {
        Intent intent=new Intent(context,MainActivity.class);
        intent.setAction(YES);
        PendingIntent pendingIntent=PendingIntent.getActivity(context,19848,intent,PendingIntent.FLAG_UPDATE_CURRENT);
        NotificationCompat.Action action=new NotificationCompat.Action(R.mipmap.ic_launcher,"Yes",pendingIntent);
        return action;
    }

    public static NotificationCompat.Action decided_no(Context context)
    {
        Intent intent=new Intent(context,MainActivity.class);
        intent.setAction(NO);
        PendingIntent pendingIntent=PendingIntent.getActivity(context,1948,intent,PendingIntent.FLAG_UPDATE_CURRENT);
        NotificationCompat.Action action=new NotificationCompat.Action(R.mipmap.ic_launcher,"no",pendingIntent);
        return action;
    }
}

【问题讨论】:

  • 尝试设置图标.setContentText("Make sure you do it").setSmallIcon(R.drawable.yourIconID);....

标签: java android notifications


【解决方案1】:

您需要在Notification.Builder 中设置一些icon,因为没有icon,您的通知将生成但不会显示在状态栏上

NotificationCompat.Builder builder=new NotificationCompat.Builder(context)
            .setColor(ContextCompat.getColor(context, R.color.colorPrimaryDark))
            .setContentTitle("Have you done it")
            .setContentText("Make sure you do it")
            .setSmallIcon(R.drawable.yourIconID)
            .setStyle(new NotificationCompat.BigTextStyle().bigText("done"))
            .setContentIntent(contentIntent(context))
            .addAction(decided_yes(context)).addAction(decided_no(context));

【讨论】:

    【解决方案2】:

    你忘了放一个小图标。

    .setSmallIcon(R.drawable.my_icon)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-13
      • 2018-04-11
      • 1970-01-01
      相关资源
      最近更新 更多