android - 编写后台服务以在特定时间调用
问题描述
我编写了一项服务,以 2 小时的间隔运行。但我希望他们被称为(上午 8 点、上午 10 点、下午 12 点等)。不只是从开始的时间开始每 2 小时一次。如何实现呢?
解决方案
你应该写这样的东西:
private AlarmManager alarmMgr;
private PendingIntent alarmIntent;
...
alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, YourService.class);
alarmIntent = PendingIntent.getService(context, 0, intent, 0);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 8);
calendar.set(Calendar.HOUR_OF_DAY, 10);
calendar.set(Calendar.HOUR_OF_DAY, 12);
alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
AlarmManager.INTERVAL_DAY, alarmIntent);
推荐阅读
- java - Select json column using JPA native query with MemSql
- python - How to sort first half in ascending and second half in descending order in python?
- javascript - 在 Vue.js 中将文件上传到 ftp 服务器
- python - 对字符串值使用 Struct.pack 格式
- android - 如何禁用主页和返回按钮?
- javascript - Add and delete row in the table
- java - 如何使用java处理selenium中动态生成的复选框
- html - Django模板表单字段以无序方式显示
- javascript - 在嵌套中构建 Angular 动态表单
- wpf - 将 ObservableCollection 中的项目更新为线程安全