Android 使用线程从服务返回START\u STICKY
我做了一个Android 使用线程从服务返回START\u STICKY,android,multithreading,android-service,Android,Multithreading,Android Service,我做了一个服务,它在启动时使用线程。我希望在应用程序关闭时保持服务运行(START\u) 要使服务继续运行,我必须返回START\u STICKY: @Override public int onStartCommand(Intent intent, int flags, int startId) { new Thread( new Runnable() { @Override public void run() { while(
服务
,它在启动时使用线程
。我希望在应用程序关闭时保持服务运行(START\u
)
要使服务继续运行,我必须返回START\u 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;
}
如何将其与线程一起返回?这似乎是对线程概念的误解。在
onStartCommand()
中启动的线程不会“阻止”该方法返回。这里发生的情况如下:
onStartCommand()
在某些线程(可能是主线程)上调用Thread.start()
立即返回,然后使用start\u STICKY
标志从onStartCommand()
返回因此,至少有两个线程在运行,一个调用了
onStartCommand()
,另一个执行run()
方法。我知道我必须使用START\u STICKY,但是如果我有一个onStartCommand线程,我如何返回它?我不理解你的问题。