我想在每天上午 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);
}
当我在真实设备上运行它时,我看不到任何通知。我哪里错了?
答案 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);