AsyncHttpClient не работает
У меня есть следующий таймер в onCreate():
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()");
вызывается...
Что я делаю неправильно?
Спасибо заранее,
2 ответа
Я обнаружил, что текущая реализация 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/), но не для локальных сетей.
@Override
public void onStart()
{
}
@Override
public void onFinish()
{
}
@Override
public void onSuccess()
{
}
@Override
public void onFailure()
{
}