Android зависает / останавливается при запуске HTTP post / get методов - PullRequest
0 голосов
/ 28 мая 2011

Итак, у меня есть успешное приложение с формой, которая регистрирует пользователя на моем веб-сайте, и я создал 15-кадровую анимацию PNG, которая также хорошо работает по команде.

У меня сначала анимация запускается (и зацикливается), а затем запускаю HTTP POST в конце анимации.Когда 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;
    }

Ответы [ 3 ]

4 голосов
/ 28 мая 2011

Вы можете исправить это с помощью AsyncTask .У Google есть введение к этому здесь .Это не заставит дела идти быстрее, но предотвратит торможение потока пользовательского интерфейса.

1 голос
/ 28 мая 2011

Исходя из вашего описания, я думаю, что ваша проблема заключается в том, что вы выполняете этот код в главном потоке, который мешает рисованию анимации. Чтобы получить больше помощи, я думаю, нам нужно больше узнать об этом мероприятии. Для такого рода проблем нам нужно знать, какие потоки вы используете, и как вы перемещаете свой сетевой код из основного потока приложения.

0 голосов
/ 28 мая 2011

Вы запускаете этот код в своем собственном потоке? Если вы этого не сделаете, то это будет зависание / остановка, потому что поток пользовательского интерфейса блокируется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...