Я создал поток в моем приложении 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();
}
Пожалуйста, помогите мне.
Вы можете использовать thread.stop(); Сделайте поток глобальным, чтобы вы могли использовать его вне функции. Иногда он останавливается, когда он завершает выполнение потока, иначе он зависает. действие на поток, а не обработчик, сделает трюк. Обработчик здесь просто для того, чтобы задержать начало потока.