我想編寫一個使用com.loopj.android.http.AsyncHttpClient的Android應用程序。雖然幾年前我寫了一個Android應用程序,但我很生疏,所以請對我溫柔!Android異步Http客戶端似乎永遠不會回電
在我的應用程序中,我做了一個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輸出。我看到「創建AsyncHttpClient」和「獲取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>
顯然,我必須做一些錯誤的 - 任何人都可以把我的權利?
您是否在清單文件中添加了必要的權限?我看不出有什麼不對,你已經分享的代碼段。 http://loopj.com/android-async-http/ –
我試着重寫onStart和onFinish,用日誌記錄 - onStart被調用,但onFinish不是。 –
清單中的權限如何?你有他們嗎?您也許需要與我們分享更多的代碼片段,以便讓它們有足夠的感覺。 –