如何每天在特定时间发送本地通知?

时间:2021-02-18 09:04:51

标签: java android android-studio

我想在每天上午 10 点 11 分向用户发送通知(本地通知)。 我做了以下事情:

在 MainActivity.java 中,我有一个按钮单击侦听器来触发警报(嗯不确定是否有必要)。好的按钮有这个代码:

 cd ~/.local/bin/ && aws s3 cp /home/ec2-user/lambda_test/lambda_function.zip s3://temp-airflow-us/lambda_function.zip

我还有一个类叫做:NotificationReceiver.java,它看起来像:

public void notifyMattie(View view) {
        Calendar calendar = Calendar.getInstance();

        calendar.set(Calendar.HOUR_OF_DAY, 10);
        calendar.set(Calendar.MINUTE, 11);
        calendar.set(Calendar.SECOND,1);

        Intent intent = new Intent(getApplicationContext(), NotificationReceiver.class);
        intent.setAction("MY_NOTIFICATION_MESSAGE");

        PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(),100,intent,PendingIntent.FLAG_UPDATE_CURRENT);

        AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
        alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),AlarmManager.INTERVAL_DAY,pendingIntent);

    }

当我在真实设备上运行它时,我看不到任何通知。我哪里错了?

1 个答案:

答案 0 :(得分:0)

对于简单的调度程序,我建议添加石英。设置非常简单。

文档:http://www.quartz-scheduler.org/

注意,时间是UTC(对于CronSheduler)

pom.xml

    <dependency>
        <groupId>org.quartz-scheduler</groupId>
        <artifactId>quartz</artifactId>
        <version>2.3.2</version>
    </dependency>

作业.java

public class Job implements Job {
public void execute(JobExecutionContext jec) throws JobExecutionException {
    System.out.println("This is a quartz job!");
}}

Main.java 必须包含

JobDetail job = JobBuilder
                  .newJob(Job.class)
                  .withIdentity("SimpleJob")
                  .build();

Trigger trigger = TriggerBuilder
                       .newTrigger()
                       .withIdentity("SimpleJob")
                       .withSchedule(CronScheduleBuilder.cronSchedule("0 11 10 * * ?"))
                       .build();

Scheduler scheduler = new StdSchedulerFactory().getScheduler();
scheduler.start();
scheduler.scheduleJob(job, trigger);
相关问题