嘿,我希望有人能帮助我。我看到很多关于设置闹钟的文章和StackOverflow问题,但我对如何为我的具体情况设置一个android闹钟有点困惑。基本上,我有一个AsyncTask从服务器下载数据,然后更新ListView。我想让它每天早上12点运行。如果手机处于关机状态,它应该在手机醒来时运行。如果手机是开着的,但没有网络,它应该在下一次有活动网络可用时运行,或者至少每30分钟运行一次,直到成功。
希望这个很棒的社区里有人能告诉我是怎么做的:-)
我认为您应该看看RxJava,它允许您调度和重复任务。请看这里的主wiki和这里的计时器页面。
这个示例展示了如何每24小时打印一次
Observable.timer(24, TimeUnit.HOURS).repeat().subscribe(new Action1<Long>() {
@Override
public void call(Long aLong) {
System.out.println("Repeated every 24 hours");
}
});
关于处理设备启动,请看这个SO问题。