我有一个应用程序启动另一个应用程序。当我的应用程序进入后台时,我希望它在后台每1分钟执行一次方法。用户可能在其他应用程序中待了几个小时,我需要这段代码尽可能长时间执行。
在Android中执行此操作的最佳方式是什么?
Android文档说:
“如果需要保持线程长时间运行,强烈建议您使用java.util.concurrent pacakge提供的各种API,例如Executor,ThreadPoolExecutor和FutureTask”
这些实用程序有点过头了。我还需要有关后台计时器的帮助。
基本上我只想要这个:
(while my app is in background) do:
MyMethod()
Wait(1 minute)
答案 0 :(得分:0)
您需要注册alarmmanager服务并每隔1分钟调用一次接收器。这是从Use alarmmanager to schedule events.
开始的一个很好的例子答案 1 :(得分:0)
尝试使用ScheduledExecutorService,请参阅http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ScheduledExecutorService.html;
它有一个名为scheduleWithFixedDelay的方法(Runnable命令, long initialDelay, 长时间延迟 TimeUnit单位)
你可以做到
Executors.newScheduledThreadPool(1).scheduleWithFixedDelay(new Runnable() {
public void run() {
wait(1);
}),0,1,TimeUnit.SECONDS);