大家好,祝你们周五愉快,
我知道这个问题看起来像是一个重复的问题,但它实际上不是,我会解释原因:
有几种方法可以在指定时间执行任务,例如TimerTask或ScheduleExecutorService,但它们都不适合我要做的事情,因为这些方法的工作方式如下:
1. 第一次运行代码在void run()内 2. 运行后,再按照指定的时间间隔运行
但我不想让我的代码只在第一次执行并在指定时间后再次执行,我希望我的代码每次都能在预定时间执行,包括第一次。 还有另一个问题:如果Android停止后台服务会发生什么? 我添加了一个Restarter接收器来重新启动服务,那么, 当后台服务重新启动时会发生什么? 由于TimerTask或ScheduleExecutorService被杀死并重新启动,上述步骤将从1到2重复执行。 结果是什么? 假设我想每3分钟运行一次任务,但Android在仅30秒后就杀死了我的服务:因为第一次void run()内的代码被执行,结果是我的代码在30秒后执行而不是3分钟后!
所以我的问题是:在Android后台服务中是否有可能每隔X分钟运行一个任务或方法,避免上述问题?
谢谢!
我知道这个问题看起来像是一个重复的问题,但它实际上不是,我会解释原因:
有几种方法可以在指定时间执行任务,例如TimerTask或ScheduleExecutorService,但它们都不适合我要做的事情,因为这些方法的工作方式如下:
1. 第一次运行代码在void run()内 2. 运行后,再按照指定的时间间隔运行
但我不想让我的代码只在第一次执行并在指定时间后再次执行,我希望我的代码每次都能在预定时间执行,包括第一次。 还有另一个问题:如果Android停止后台服务会发生什么? 我添加了一个Restarter接收器来重新启动服务,那么, 当后台服务重新启动时会发生什么? 由于TimerTask或ScheduleExecutorService被杀死并重新启动,上述步骤将从1到2重复执行。 结果是什么? 假设我想每3分钟运行一次任务,但Android在仅30秒后就杀死了我的服务:因为第一次void run()内的代码被执行,结果是我的代码在30秒后执行而不是3分钟后!
所以我的问题是:在Android后台服务中是否有可能每隔X分钟运行一个任务或方法,避免上述问题?
谢谢!