2016-05-31 4 views
0

Я разрабатываю приложение, и мне нужно показать сообщение Toast из потока, который работает в другом классе. Я читал о runOnUiThread, но он не работает. В основной деятельности есть вызов другого класса Java, и здесь есть подключение к веб-серверу, и я обрабатываю сообщения Http с сервера. Здесь, если я получил 204 сообщения, мне нужно показать тост. Как я могу реализовать runOnUiThread?Как показать сообщения Toast из потока в другом классе

Благодаря

+0

вы не реализуете его, он уже готов к использованию –

+0

ли вы в курсе с _interface_? – Piyush

ответ

0

Передайте ссылку вашей деятельности в ответ на это рабочий класс и вызовите runOnUiThread как этот

activity.runOnUiThread(new Runnable() { 
    public void run() { 
     Toast.makeText(activity, "Your Message here", Toast.LENGTH_SHORT).show(); 
    } 
}); 
+0

Я понял свою ошибку: в моем классе я пытался назвать свой контекст активности, но я не передал ссылку ... Так что передал ссылку, это работает. Спасибо и извините за потраченное время !!! – Yoshi

+0

@Yoshi проблем нет. Примите ответ, если это поможет. –

0

Я предлагаю вам использовать 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 
    } 

}); 

Прекрасный, верно?