1

我有一个启动另一个应用程序的应用程序。当我的应用程序进入后台时,我希望它在后台每 1 分钟执行一次方法。用户可能在另一个应用程序中待了几个小时,我需要尽可能长时间地执行此代码。

在 Android 中执行此操作的最佳方法是什么?

Android 文档说:

“如果你需要让线程长时间运行,强烈建议你使用java.util.concurrent包提供的各种API,如Executor、ThreadPoolExecutor和FutureTask”

这些实用程序有点超出我的想象。我还需要后台计时器的帮助。

基本上我只想要这个:

(while my app is in background) do:
MyMethod()
Wait(1 minute)
4

2 回答 2

0

您需要注册到 alarmmanager 服务并每 1 分钟调用一次接收器。这是一个很好的例子,开始使用警报管理器来安排事件。

于 2013-09-23T23:23:57.757 回答
0

尝试使用 ScheduledExecutorService 见http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ScheduledExecutorService.html

它有一个方法叫做 scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit)

你可以做

Executors.newScheduledThreadPool(1).scheduleWithFixedDelay(new Runnable() {
public void run() {
wait(1);
}),0,1,TimeUnit.SECONDS);
于 2013-09-23T23:30:42.897 回答