如果之前有人问过这个问题并道歉..我是android的新手..我正在使用HttpClient从servlet获取响应..并且servlet给我作为JSON对象的响应..我正在使用缓冲阅读器阅读这个..
对于这些东西,我正在使用 AsyncTask
以下是代码片段..
public void onClickButtonLogin() {
button_login.setOnClickListener(new View.OnClickListener() {@
Override
public void onClick(View v) {
if (logInFor.equalsIgnoreCase("Driver")) {
if (!TextUtils.isEmpty(editText_userName.getText().toString().trim()) && !TextUtils.isEmpty(editText_userName.getText().toString().trim())) {
doCheckUserAuthentication(editText_userName.getText().toString(), editText_password.getText().toString());
if (isUserAuthenticate) {
if (loggedInUser.getRollNo() == 2) {
Intent intent = new Intent(getApplicationContext(), TruckingMenuDriverActivity.class);
startActivity(intent);
} else {
Toast toast = Toast.makeText(context, "Invalid username/password", Toast.LENGTH_SHORT);
toast.show();
editText_userName.setText("");
editText_password.setText("");
}
} else {
Toast toast = Toast.makeText(context, "Invalid username/password", Toast.LENGTH_SHORT);
toast.show();
editText_userName.setText("");
editText_password.setText("");
}
} else {
Toast toast = Toast.makeText(context, "Invalid username/password", Toast.LENGTH_SHORT);
toast.show();
editText_userName.setText("");
editText_password.setText("");
}
}
}
});
}
public void doCheckUserAuthentication(String userName, String password) {
LoginTask task1 = new LoginTask();
task1.execute(userName, password);
/*if(task1.getStatus() != AsyncTask.Status.FINISHED){
try {
wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}*/
}
所以我正在尝试更新 onPostExecute 中的 isUserAuthenticate 变量,但它没有更新..如果我首先尝试在第二个中调整和 ture,我会变得错误..我认为可能是它的线程同步问题..但我不知道要让 main UI 线程等待 unitl AnyncTask 线程。完成..所以请帮助我..我需要做什么..在此先感谢..