私はアンドロイドデバイスからHTTP Post
を実行していますが、何らかの理由でpost
が数秒で実行されますが、画面はまだ18秒または20秒以上フリーズしています。Androidフリーズ画面HTTPポスト実行後20秒
私が使用しているコードは次のとおりです。
public boolean CommentPost(String comment, String requestId, String deviceId){
List<NameValuePair> params = new ArrayList<NameValuePair>(6);
params.add(new BasicNameValuePair("requestId", requestId));
params.add(new BasicNameValuePair("comment", URLEncoder.encode(requestId)));
params.add(new BasicNameValuePair("deviceId", URLEncoder.encode(deviceId)));
return ExecutePost(params, "Comment/Add");
}
private boolean ExecutePost(List<NameValuePair> params, String url){
String queryString = RewriteParams(params);
url = BaseURL + url + queryString;
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
try {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
httppost.setEntity(new UrlEncodedFormEntity(params));
HttpResponse response = httpclient.execute(httppost);
return true;
} catch (ClientProtocolException e) {
return false;
} catch (IOException e) {
return false;
}
}
私はアヤックスと(郵便配達などの)いくつかのHTTPクライアントで動作をテストし、要求が実行される1または2秒未満を受け取り、取得応答。 なぜAndroidでもっと話しているのですか?
になることを覚えておいてくださいメインスレッドでネットワーク要求は、バックグラウンドで実行する必要があります。非同期タスクまたはボレー –
@MueyiwaMosesIkomiを使用してみてください。これをメインスレッドで実行しようとすると 'android.os.NetworkOnMainThreadException'が発生しませんか? – tpk
あなたが言ったように、それはあまりにもありますが、その郵便配達員の1秒の実行です。 –