gpt4 book ai didi

android - 使用线程从服务中返回START_STICKY

转载 作者:行者123 更新时间:2023-12-03 13:10:33 24 4
gpt4 key购买 nike

我创建了一个Service,它在启动时使用Thread。我想在我的应用程序关闭时保持服务运行(START_STICKY)。

为了使服务继续运行,我必须返回START_STICKY:

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
new Thread( new Runnable() {
@Override
public void run() {
while(true) {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}).start();
return START_STICKY;
}

如何通过线程返回它?

最佳答案

这似乎是对 Thread 概念的误解。您在onStartCommand()中启动的线程不会“阻止”该方法返回。发生的情况如下:

  • onStartCommand()在某个线程(可能是主线程)上被调用
  • Thread.start()立即返回,然后从带有onStartCommand()标志的START_STICKY返回。

  • 结果,至少有两个线程正在运行,一个线程已被调用 onStartCommand(),另一个线程执行了 run()方法。

    关于android - 使用线程从服务中返回START_STICKY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34654930/

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