好吧,我一直试图让这个工作一段时间。我希望能够让用户登录,而不必在服务器响应之前挂起UI。当doinbackground完成时,我希望它将一个int值或一个布尔值传递给postexecute,然后执行其余的代码。出于某种原因,我在传递值时遇到了问题。从Asynctask返回值
任何人都可以帮助我吗?
private class login extends AsyncTask<Integer, Void, Void>{
ProgressDialog dialog = ProgressDialog.show(MainActivity.this, "", "Loading, Please wait...", true);
String user = "";
@Override
protected int doInBackground(Integer... params) {
// TODO Auto-generated method stub
Log.i("thread", "Doing Something...");
int val = 0;
if(db.userLogin(userTxt.getText().toString(), passTxt.getText().toString(), getApplicationContext()) == "No User Found, please try again!"){
val = 0;
}
return val;
}
protected void onPreExecute(){
//dialog.dismiss();
Log.i("thread", "Started...");
dialog.show();
}
protected void onPostExecute(int result){
Log.i("thread", "Done...");
dialog.dismiss();
if(result == 0){
toast.setText("No User Found, please try again!");
toast.show();
}else{
Intent myIntent = new Intent(ctx, userInfo.class);
myIntent.putExtra("user", user);
startActivityForResult(myIntent, 0);
}
}
}
请解释你的“传递值的问题”是什么。 – CommonsWare 2011-03-20 19:10:56