2012-06-29 2 views
0

У меня есть следующий таймер в OnCreate():AsyncHttpClient не работает

new Timer().scheduleAtFixedRate(new TimerTask(){ 

      public void run() { 
       Log.i("EOH","timer"); 
       updateMarkers(); 
     }}, 0, 1000); 

Как вы можете видеть, она вызывает функцию updateMarkers() каждый второй.

Вот updateMarkers():

private void updateMarkers(){ 
     Log.i("EOH","updateMarkers()"); 
     Drawable drawable = this.getResources().getDrawable(R.drawable.google_maps_marker); 
     final MyItemizedOverlay itemizedoverlay = new MyItemizedOverlay(drawable,mapView); 

     AsyncHttpClient myClient = new AsyncHttpClient(); 
     final PersistentCookieStore myCookieStore = new PersistentCookieStore(context); 
     myClient.setCookieStore(myCookieStore); 
     RequestParams params = new RequestParams(); 
     params.put("sw_lat", String.valueOf(centrePoint.getLat()-(Double.valueOf(mapView.getLatitudeSpan())/2.0))); 
     params.put("sw_lng", String.valueOf(centrePoint.getLat()-(Double.valueOf(mapView.getLongitudeSpan())/2.0))); 
     params.put("ne_lat", String.valueOf(centrePoint.getLat()+(Double.valueOf(mapView.getLatitudeSpan())/2.0))); 
     params.put("ne_lng", String.valueOf(centrePoint.getLat()+(Double.valueOf(mapView.getLongitudeSpan())/2.0))); 

     myClient.post("http://www.prestocab.com/ajax/getRanks.php", params, new AsyncHttpResponseHandler() { 

      public void onStart() { 
       thinger.setVisibility(View.VISIBLE); 
       Log.i("EOH","onStart()"); 
      } 


      public void onSuccess(String response) { 
       Log.i("EOH","xxx: "+response); 
       thinger.setVisibility(View.INVISIBLE); 

       try{ 
        JSONArray arr=(JSONArray) new JSONTokener(response).nextValue(); 
        Log.i("EOH","yyy: "+String.valueOf(arr.length())); 
       }catch(JSONException e){ 

       } 


      } 


      public void onFailure(Throwable e) { 
       thinger.setVisibility(View.INVISIBLE); 
      } 


      public void onFinish() { 

      } 

     }); 

    } 

Проблема у меня в том, что Log.i("EOH","onStart()"); никогда не вызывается! Однако Log.i("EOH","updateMarkers()"); получает вызов ...

Что я делаю неправильно?

Большое спасибо заранее,

+0

вы можете вставить свой logcat из Log.i («EOH», «timer»); печатается в Log.i («EOH», «onStart()»); – rajpara

+0

onStart() не получает вызов ...; ( – Eamorr

+0

Вы используете какую-либо библиотеку? – rajpara

ответ

-3
@Override 
public void onStart() 
{ 
} 

@Override 
public void onFinish() 
{ 
} 

@Override 
public void onSuccess() 
{ 
} 

@Override 
public void onFailure() 
{ 
} 
+2

И как это исправить проблему «AsyncHttpClient not working»? – Jesse

0

я узнал, что текущая реализация AsyncHttpClient - первый начать использовать - версия 1.4.3 (2013-09-25) имеет некоторые проблемы с местными имен хостов сети интранет. Я тестировал, используя локальную сеть с веб-сервером, запущенным на моем компьютере, и он вызывал onStart, но никогда не вызывал onSuccess или какие-либо другие методы.

Мое имя было RM_UB02 (без суффиксов в Интернете). Веб-браузеры Android и Chrome смогли разрешить URL-адрес (http: // RM_UB02/test/page.html), но AsyncHttpClient никогда не работал.

Я изменил IP-адрес локальной сети (192.168.1.104) и начал работать. Я понял, что он работает правильно для интернет-имен (http://slashdot.org), но не для локальных сетей.

Смежные вопросы