问题描述
||
因此,我有一个成功的应用程序,该应用程序具有在我的网站上注册用户的表单,并且创建了一个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;
}
解决方法
您可以使用AsyncTask进行修复。 Google在这里对其进行了介绍。它不会使事情进展得更快,但可以防止UI线程停滞。
, 根据您的描述,我可能会想到您的问题是您正在干扰动画绘制的主线程上执行此代码。要获得更多帮助,我认为我们需要查看更多该活动。对于此类问题,我们必须知道您正在使用的线程以及如何将净代码从主应用程序线程中移出。
, 您是否在自己的线程中运行此代码?如果不是,那么它会滞后/停止,因为UI线程被阻止了。