Я хочу закрыть фоновый поток в моей службе в методе 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;
}
Я полагаю, вы используете Service. Тогда вы можете Context.stopService(intent) точно так же, как и Context.startService(intent).
Вы можете использовать
stopService(new Intent(this, YourService.class));
Это остановит эту службу и все ее Threads.
Жизненный цикл потока отличается от жизненного цикла компонента контекста Android. Остановки службы недостаточно, чтобы остановить поток, созданный службой. Thread.interrupt() - это опция. - Хотя тебе стоит поймать InterruptedException. Если этого недостаточно, вы можете проверить, не остановлена ли служба в вашем методе connect().
Покажи мне свой метод подключения.