【问题标题】:Run android background service for long time长时间运行android后台服务
【发布时间】:2013-09-23 23:19:48
【问题描述】:

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

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

Android 文档说:

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

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

基本上我只想要这个:

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

【问题讨论】:

    标签: java android


    【解决方案1】:

    您需要注册到 alarmmanager 服务并每 1 分钟调用一次接收器。这是一个以Use alarmmanager to schedule events. 开头的好例子

    【讨论】:

      【解决方案2】:

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

      它有一个方法叫做 scheduleWithFixedDelay(Runnable command, 很长的初始延迟, 长时间的延迟, TimeUnit 单位)

      你可以的

      Executors.newScheduledThreadPool(1).scheduleWithFixedDelay(new Runnable() {
      public void run() {
      wait(1);
      }),0,1,TimeUnit.SECONDS);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-11-20
        • 1970-01-01
        • 2017-12-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-26
        • 2018-01-12
        相关资源
        最近更新 更多