我正在通过 AsyncTask 内部类从我的 android 活动向 Web 服务发布帖子。我的想法是每次我发布到网络服务。我希望 AsynTask 向 Activity 返回一个字符串值,通知 Activity 是否有成功发布或发布到 Web 服务失败。我通过 get 方法做到了这一点,但我注意到当我单击按钮发布我的 UI 时会在响应之前冻结一段时间。但帖子仍然有效。请问有没有办法可以防止这个 UI 冻结。我的代码如下。
这是我的 AsyncTask 类中的 doBackground 方法
@Override
protected String doInBackground(String... arg0) {
// TODO Auto-generated method stub
String result = "";
PatientModel patient = new PatientModel();
patient.setPhone(Phone);
patient.setEmail(Email);
patient.setGCMRegistrationID(GCMRegistrationID);
JSONHttpClient jsonHttpClient = new JSONHttpClient();
patient = (PatientModel) jsonHttpClient.PostObject(RestfulServiceUrl.RegisterPatient, patient, PatientModel.class);
GCMRegistrar.setRegisteredOnServer(context, true);
if(patient != null) {
result = patient.getPhone();
}
else if(patient == null){
result = "failed";
}
return result;
}
这是我在活动中收集值的脚本
try {
String result = new RegisterPatient(RegisterActivity.this,resource,email,phone,regId).execute().get();
}
catch(Exception e){
}