gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 00:16:59 27 4
gpt4 key购买 nike

我正在使用简单的 ScheduledExecutorService 实现并且一切正常。但是当我打开其他应用程序(如谷歌浏览器或游戏)时,我的应用程序调度程序停止并且 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 上运行,即只要您的应用程序存在,它就会一直存在。您应该使用不同的方法让您的 ScheduledExecutorService 保持 Activity 状态,例如从 Service 启动它或使用其他独立的计划方法,例如 AlaramManager

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

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com