android - 为什么当我打开其他应用程序时 ScheduledExecutorService 会停止

标签 android android-intent android-fragments

我正在使用简单的 ScheduledExecutorService 实现,一切工作正常。但是当我打开其他应用程序(例如 google chrome 或游戏)时,我的应用程序调度程序停止并且 android 调试控制台变为空。 顺便说一句 onPause 和 onStops 方法我启动 beepForAnHour() 方法。

import static java.util.concurrent.TimeUnit.*;
 class BeeperControl {
   private final ScheduledExecutorService scheduler =
     Executors.newScheduledThreadPool(1);

   public void beepForAnHour() {
     final Runnable beeper = new Runnable() {
       public void run() { System.out.println("beep"); 
     };
     final ScheduledFuture beeperHandle =
       scheduler.scheduleAtFixedRate(beeper, 10, 10, SECONDS);
     scheduler.schedule(new Runnable() {
       public void run() { beeperHandle.cancel(true); }
     }, 60 * 60, SECONDS);
   }
 }}

最佳答案

ScheduledExecutorService 与您的应用程序在相同的进程 ID 上运行,即只要您的应用程序存在,它就绑定(bind)存在。您应该使用不同的方法来保持 ScheduledExecutorService Activity ,例如从 Service 启动它或使用其他独立的计划方法,例如 AlaramManager

关于android - 为什么当我打开其他应用程序时 ScheduledExecutorService 会停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25843982/

相关文章:

android - 无法在 onPrepareDialog 中设置复选框状态

android - 覆盖操作栏被状态栏遮挡

android - 如何处理 Android 6 及更高版本的卸载 Intent ?

java - 错误 “unable to find explicit activity class”

android - java.lang.IllegalStateException : The specified child already has a parent

java - Libgdx - 减慢射弹停止,然后反转它

android - AppCompat 23.3 支持向量不再起作用?

android - 三星相机 Intent

java - Android Studio : How to get EditText values from Fragment 1 to Fragment 2 respectively on button clicked

android - 使用 ViewPager 更改选项卡时重新创建 fragment