我想用onDestroy
方法关闭服务中的后台线程,因为如果我停止服务,则后台线程仍在运行。因为thread.stop()
已过时,所以我真的不知道该怎么做。
@Override
public int onStartCommand(Intent intent, int flags, int startId)
{
runAsForeground();
Runnable service = new Runnable() {
@Override
public void run() {
connect(client,options);
}
};
backgroundThread = new Thread(service);
backgroundThread.start();
Log.i(TAG, "onStartCommand methode called");
return Service.START_NOT_STICKY;
}
答案 0 :(得分:0)
我想您正在使用Service
。然后您可以像Context.stopService(intent)
一样Context.startService(intent)
。
答案 1 :(得分:0)
您可以使用
stopService(new Intent(this, YourService.class));
它将停止该服务及其所有Threads
。
答案 2 :(得分:0)
线程生命周期与Android上下文组件生命周期不同。停止服务不足以停止创建该服务的线程。 Thread.interrupt()
是一个选项。 -不过,您应该抓住InterruptedException
。如果这还不够,您可以检查connect()
方法中服务是否没有停止。