0

com.loopj.android.http.AsyncHttpClient を使用する Android アプリを作成しようとしています。数年前にAndroidアプリを書きましたが、とてもさびしいので、お手柔らかにお願いします!

私のアプリでは、get を実行しましたが、コールバック仮想メソッドはどれも呼び出されません。単純化して、それが私のアプリに関するものではないことを確認するために、SDK に付属の SupportAppNavigation プロジェクトに基づいて新しいプロジェクトを作成しました。onCreate コードを次のように変更しました。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Log.i("com.trumphurst", "Creating AsyncHttpClient");
    AsyncHttpClient client = new AsyncHttpClient();
    client.setTimeout(5000);
    Log.i("com.trumphurst", "Getting www.google.com");
    client.get("http://www.google.com", new AsyncHttpResponseHandler() {
        @Override
        public void onSuccess(String response) {
            Log.i("com.trumphurst", "Success");
        }
        @Override
        public void onFailure(Throwable error, String content) {
            Log.i("com.trumphurst", "Failure");
        }
    });
    setListAdapter(new SampleAdapter(querySampleActivities()));
}

(これは、SDK に付属するサンプル アプリケーションに対して行った唯一のコード変更であることに注意してください。)

デバッガーでアプリを起動し、logcat の出力を監視しました。「Creating AsyncHttpClient」と「Getting www.google.com」を見ましたが、何もありませんでした。

マニフェストにいくつかのアクセス許可を追加しました-今すぐ開始します:

<manifest android:versionCode="1"
    android:versionName="1"
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.support.appnavigation">

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<application android:label="@string/app_name">
    <activity android:name=".app.AppNavHomeActivity"
            android:label="@string/app_nav_home_label">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

明らかに、私は何か間違ったことをしているに違いありません - 誰かが私を正すことができますか?

4

3 に答える 3

2

AsyncHttpResponseHandler() を TextHttpResponseHandler() に変更すると、オーバーライドは次のようになります。

myClient.get(url, new TextHttpResponseHandler() {

                    @Override
                    public void onFailure(int i, Header[] headers, String s, Throwable throwable) {

                     }

                    @Override
                    public void onSuccess(int ii, Header[] headers, String s) {

                    }

}
于 2015-01-17T20:01:05.307 に答える