发送每日通知-Android吗?

时间:2020-09-05 09:02:55

标签: android-studio notifications android-notifications android-alarms

我想从应用程序发送每日通知,我可以发送通知,但是当应用程序被终止/不在后台时,AlarmManager不会触发通知。

下面是我尝试过的代码,

在我的主要活动中调用2种方法!

private void createNotificationChannel()
{
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
    {
        CharSequence name = "Notification";
        String description  = "Channel for Notification";
        int importance = NotificationManager.IMPORTANCE_DEFAULT;
        NotificationChannel channel = new NotificationChannel("Notification", name, importance);
        channel.setDescription(description);

        NotificationManager notificationManager = getSystemService(NotificationManager.class);
        notificationManager.createNotificationChannel(channel);
    }
}

private void setnotificationSendService()
{
    AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);

    //creating a new intent specifying the broadcast receiver
    Intent i = new Intent(this, ReminderBroadcast.class);

    //creating a pending intent using the intent
    PendingIntent pi = PendingIntent.getBroadcast(this, 0, i, 0);

    //setting the repeating alarm that will be fired every day
    Calendar alarmStartTime = Calendar.getInstance();
    alarmStartTime.set(Calendar.HOUR_OF_DAY, 10);
    alarmStartTime.set(Calendar.MINUTE, 0);
    alarmStartTime.set(Calendar.SECOND, 0);
    am.setRepeating(AlarmManager.RTC_WAKEUP, (alarmStartTime.getTimeInMillis()), AlarmManager.INTERVAL_DAY, pi);
}

我的接收者:

context.startService(new Intent(context, NotifyService.class));

我的服务

        NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext(), "Notification")
            .setSmallIcon(R.drawable.ic_launcher_foreground)
            .setContentTitle("Hello")
            .setContentText("Notification Test")
            .setPriority(NotificationCompat.PRIORITY_DEFAULT);

    NotificationManagerCompat notificationManager = NotificationManagerCompat.from(getApplicationContext());
    notificationManager.notify(200, builder.build());

有办法吗? 每天上午10点和晚上7点(或在任意1个特定时间)发送通知

0 个答案:

没有答案
相关问题