0

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()");、呼び出されます...

私は何を間違っていますか?

よろしくお願いします。

4

2 に答える 2

0

AsyncHttpClient の現在の実装 (私が最初に使い始めたバージョン) 1.4.3 (2013-09-25) には、ローカル イントラネット ホスト名に問題があることがわかりました。私は自分のコンピューターで実行されている Web サーバーでローカル ネットワークを使用してテストしていましたが、onStart を呼び出していましたが、onSuccess やその他のメソッドを呼び出すことはありませんでした。

私のホスト名は RM_UB02 (インターネット ドメイン サフィックスなし) でした。Android および Chrome の Web ブラウザーは URL (http://RM_UB02/test/page.html) を解決できましたが、AsyncHttpClient は機能しませんでした。

ローカルのイントラネット IP アドレス (192.168.1.104) に変更したところ、機能し始めました。インターネット名 ( http://slashdot.org ) に対しては問題なく機能していましたが、ローカル ネットワークに対しては機能していなかったことがわかりました。

于 2013-09-26T05:03:59.497 に答える
-3
@Override
public void onStart()
{
}

@Override
public void onFinish()
{
}

@Override
public void onSuccess()
{
}

@Override
public void onFailure()
{
}
于 2013-05-18T14:57:45.830 に答える