Как закрыть фоновый поток в службе, когда служба уничтожена

Я хочу закрыть фоновый поток в моей службе в методе 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;
}

Покажи мне свой метод подключения.

Son Truong 21.08.2018 10:02
0
1
60
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Я полагаю, вы используете Service. Тогда вы можете Context.stopService(intent) точно так же, как и Context.startService(intent).

Вы можете использовать

stopService(new Intent(this, YourService.class));

Это остановит эту службу и все ее Threads.

Ответ принят как подходящий

Жизненный цикл потока отличается от жизненного цикла компонента контекста Android. Остановки службы недостаточно, чтобы остановить поток, созданный службой. Thread.interrupt() - это опция. - Хотя тебе стоит поймать InterruptedException. Если этого недостаточно, вы можете проверить, не остановлена ​​ли служба в вашем методе connect().

Другие вопросы по теме