Return START_STICKY 来自线程服务
Return START_STICKY from Service with Thread
我制作了一个 Service
,它在启动时使用 Thread
。我想在我的应用程序关闭时保留服务 运行 (START_STICKY
)。
要使服务保持 运行,我必须 return 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;
}
我怎样才能 return 它与我的线程?
好像是对Thread
这个概念的误解。您在 onStartCommand()
中启动的线程没有 "prevent" 返回的方法。这里发生的事情如下:
onStartCommand()
在某个线程(可能是主线程)上被调用
Thread.start()
returns 紧接着从 onStartCommand()
返回并带有 START_STICKY
标志。
因此至少有两个线程运行,一个调用了onStartCommand()
,另一个执行run()
方法。
我制作了一个 Service
,它在启动时使用 Thread
。我想在我的应用程序关闭时保留服务 运行 (START_STICKY
)。
要使服务保持 运行,我必须 return 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;
}
我怎样才能 return 它与我的线程?
好像是对Thread
这个概念的误解。您在 onStartCommand()
中启动的线程没有 "prevent" 返回的方法。这里发生的事情如下:
onStartCommand()
在某个线程(可能是主线程)上被调用Thread.start()
returns 紧接着从onStartCommand()
返回并带有START_STICKY
标志。
因此至少有两个线程运行,一个调用了onStartCommand()
,另一个执行run()
方法。