Как показывать сообщения Toast из потока в другом классе
Я разрабатываю приложение, и мне нужно показать сообщение Toast из потока, который работает в другом классе. Я читал про runOnUiThread, но он не работает.. В основной активности есть вызов другого java-класса, и здесь есть соединение с веб-сервером, и я обрабатываю сообщения Http с сервера. Здесь, если я получил 204 сообщения, мне нужно показать тост. Как я могу реализовать runOnUiThread?
Спасибо
2 ответа
Решение
Передайте ссылку своей деятельности на этот рабочий класс и вызовите runOnUiThread следующим образом
activity.runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(activity, "Your Message here", Toast.LENGTH_SHORT).show();
}
});
Я предлагаю вам использовать библиотеку Retrofit. Он обрабатывает все нити для вас, и вам не нужно заново изобретать колесо.
//make request in ui thread
yourService.getMyData().enqueue(new Callback<YourResponse>() {
@Override
public void onResponse(Response<YourResponse> response) {
//handle responses in ui thread
if (response.isSuccess()) {
//Toast.makeText()..
} else {
//error
}
}
@Override
public void onFailure(Throwable t) {
//toast the error
}
});
Красиво, правда?