0

そのため、ユーザーを自分のWebサイトに登録するフォームを使用してアプリケーションを成功させ、コマンドでも適切に実行される15フレームのpngアニメーションを作成しました。

最初にアニメーションを起動して(そしてループして)、アニメーションの最後にHTTPPOSTを実行します。HTTP Postがその処理を実行しているとき、アニメーション(ほとんどすべてのAndroid)は遅れるか一時停止し、POSTが実行された後も機能し続けます。

これは正常ですか?POSTの実行時にラグが発生しないようにする方法はありますか?

ありがとう!

そして、興味のある人のために、ここに私のhttpClassがあります(mywebsite.comは私の実際のURLの単なる小道具です)

try{

                Log.d("MYTAG", "Registration begin"); 
                HttpClient client = new DefaultHttpClient();
                String postURL = "mywebsite.com";
                HttpPost post = new HttpPost(postURL);
                List<NameValuePair> params = new ArrayList<NameValuePair>();
                params.add(new BasicNameValuePair("username", username));
                params.add(new BasicNameValuePair("password", password));
                params.add(new BasicNameValuePair("email", email));
                params.add(new BasicNameValuePair("fullName", fullName));
                UrlEncodedFormEntity ent = new UrlEncodedFormEntity(params);
                post.setEntity(ent);
                HttpResponse responsePOST = client.execute(post);
                HttpEntity resEntity = responsePOST.getEntity();
                if(resEntity!=null){
                    newCode = EntityUtils.toString(resEntity);
                } else {
                    newCode = (String) null;
                }
             }catch(Exception e){
                Log.d("MYTAG", "Exception e="+e);
             }
             return newCode;
    }
4

3 に答える 3

4

これはAsyncTaskで修正できます。Googleはここでそれを紹介しています。処理が速くなることはありませんが、UIスレッドが停止するのを防ぎます。

于 2011-05-28T04:17:54.700 に答える
1

あなたの説明に基づいて、あなたの問題についての私の推測は、アニメーションの描画を妨害しているメインスレッドでこのコードを実行しているということです。もっと助けになるためには、もっと多くのアクティビティを見る必要があると思います。この種の問題については、使用しているスレッドと、ネットコードをメインのアプリケーションスレッドからどのように移動しているかを知る必要があります。

于 2011-05-28T04:14:21.077 に答える
0

このコードを独自のスレッドで実行していますか?そうでない場合は、UIスレッドがブロックされているため、遅延/停止します。

于 2011-05-28T04:14:11.373 に答える