2017-02-21 9 views
1

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

private static final int JSON_PARSE = 0; 

private Handler mHandler = new Handler(new Handler.Callback() { 
    @Override 
    public boolean handleMessage(Message message) { 
     switch (message.arg1) { 
      case JSON_PARSE: 
       String json = (String) message.obj; 
       try { 
        jsonObj = new JSONObject(json); 

        if (!jsonObj.toString().trim().isEmpty() && jsonObj != null) { 

        //Some code 

        } 

       } catch (JSONException e) { 
        e.printStackTrace(); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
       break; 
     } 
     return false; 
    } 
}); 

И я звоню его как этот

Message msgResponse = new Message(); 
msgResponse.obj = response; 
msgResponse.arg1 = JSON_PARSE; 
mHandler.handleMessage(msgResponse); 
+1

первый: используйте 'Сообщение # obtain', второй: вызов' сообщение # sendToTarget', например: 'Message.obtain (mHandler, JSON_PARSE, response) .sendToTarget()', обратите внимание, что вы должны 'switch (message.what)' – pskink

ответ

0

Вы должны отправить сообщение обработчику, как показано ниже

Message msgResponse = new Message(); 
msgResponse.obj = response; 
msgResponse.arg1 = JSON_PARSE; 
mHandler.sendMessage(msgResponse); 
Смежные вопросы