Как остановить поток в Android, который запускается с помощью метода PostDelayed

1

Я создал поток в моем приложении Android для извлечения данных, сделав http-запрос на сервер.

Я использовал следующий код для создания потока и определенного обработчика следующим образом.

private Handler mHandler = new Handler();
final Runnable mUpdateTimeTask = new Runnable() {
    public void run() {
        dilogShow=false;
        getappdata();
    }
};

И чтобы начать этот поток, я использовал следующую строку кода

mHandler.postDelayed(mUpdateTimeTask, 20000);

И чтобы остановить его, я использую следующую строку кода, которая работает несколько раз, но не всегда.

mHandler.removeCallbacks(mUpdateTimeTask);

функция getappdata() выглядит следующим образом:

public void getappdata() {
    final Handler handler = new Handler() {
    @Override
    public void handleMessage(Message message) {
        // managing UI here
        };
    };

    Thread thread = new Thread() {
        @Override
        public void run() {
            // sending http request here
        };
    };  

    thread.start();
}

Пожалуйста, помогите мне.

  • 0
    что вы пытаетесь достичь и в чем ваша проблема?
Теги:

1 ответ

0

Вы можете использовать thread.stop(); Сделайте поток глобальным, чтобы вы могли использовать его вне функции. Иногда он останавливается, когда он завершает выполнение потока, иначе он зависает. действие на поток, а не обработчик, сделает трюк. Обработчик здесь просто для того, чтобы задержать начало потока.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню