2014-01-29 4 views
0

У меня есть следующий метод:Как сделать async методы, которые возвращают логическое?

 public static boolean getIsUp() 
    { 
     String method = "isup.php"; 
     AsyncHttpResponseHandler response = new AsyncHttpResponseHandler(){ 

     @Override 
      public void onSuccess(String content) { 
      if(Integer.parseInt(content) == IS_UP_CONTENT) 
       //code to return true 
      else 
       //code to return false 
     } 

    }; 
    get(method, null, response); 
} 

Как бы вы заполняете // код для возврата верно и // код для возврата ложным, так что метод возвращает соответствующий ответ? Возможно ли это?

+3

Прежде чем продолжить, прочитайте [это] (http://stackoverflow.com/questions/513832/how-do-compare-strings-in-java). –

+0

И вместо того, чтобы читать это ... вместо 'if (condition) else' и писать то, что будет почти идентичным кодом дважды ... почему бы вам просто не вернуть то, что будет оценивать (правильное) сравнение? – nhgrif

+0

@SotiriosDelimanolis Ooops, предполагалось, что это Integer.parseInt (контент), а не только контент. –

ответ

0

Я думаю, что вы не должны использовать AsyncHttpResponseHandler внутри метода non-async, если хотите немедленно вернуть результат.

Что вы можете сделать, это с помощью AsyncTask и onPostExecute Обратного звонка

Этого класс позволяет выполнять фоновые операции и публиковать результаты на потоке пользовательского интерфейса без необходимости манипулировать потоки и/или обработчик.