【问题标题】:How to set notification using alarm manager如何使用警报管理器设置通知
【发布时间】:2020-01-27 16:29:20
【问题描述】:

我想在我的主要活动中按下按钮 10 秒后生成通知 我尝试了很多方法,但没有收到通知

这是我的主类中的代码

     btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            long when = System.currentTimeMillis() + 10000L;

            AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
            Intent intent = new Intent(this, AlertReceiver.class);
            intent.putExtra("myAction", "mDoNotify");
            PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
            am.set(AlarmManager.RTC_WAKEUP, when, pendingIntent);

        }
    });

还有 AlertReceiver 类

if(intent.getStringExtra("myAction") != null &&
            intent.getStringExtra("myAction").equals("notify")){
        NotificationManager manager =
                (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

        NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
                .setSmallIcon(R.drawable.ic_launcher_background)
                //example for large icon
                .setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.mipmap.ic_launcher))
                .setContentTitle("my title")
                .setContentText("my message")
                .setOngoing(false)
                .setPriority(NotificationCompat.PRIORITY_DEFAULT)
                .setAutoCancel(true);
        Intent i = new Intent(context, MainActivity.class);
        PendingIntent pendingIntent =
                PendingIntent.getActivity(
                        context,
                        0,
                        i,
                        PendingIntent.FLAG_ONE_SHOT
                );
        // example for blinking LED
        builder.setLights(0xFFb71c1c, 1000, 2000);
        //builder.setSound(yourSoundUri);
        builder.setContentIntent(pendingIntent);
        manager.notify(12345, builder.build());
    }

【问题讨论】:

标签: java android notifications alarmmanager android-pendingintent


【解决方案1】:

您的字符串不匹配:

intent.putExtra("myAction", "mDoNotify");
<...>
if(intent.getStringExtra("myAction") != null &&
        intent.getStringExtra("myAction").equals("notify")){

另外,你必须创建一个通知通道,否则通知将不会在 Android 9+ 上显示

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多