通知不使用 : NotificationCompat.Builder 显示



我在oncreate方法中调用了一个方法,该方法mainactivity调用notification但应用程序启动时未传递通知 MainActivity oncreate方法

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

决定.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;
    }
}
您需要

使用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));

你忘了放一个小图标。

.setSmallIcon(R.drawable.my_icon)

最新更新