根据我的说法,使用AsyncTask而不是 an,Thread
因为它易于使用,并且您可以更好地控制后台线程,而无需执行额外的代码来创建单独的逻辑以在线程执行完成时更新 Ui,计算进度单位以便用户执行操作需要多少时间完成等
您的第一个问题是如何发送username
和单击按钮。为此,请使用password
构造函数:AsyncTask
AsyncTask
LoginOperation loginopertion=new LoginOperation(strusername, strpassword);
loginopertion.execute("");
您的第二个答案是我们如何在任务完成时接收和更新 Ui username
,以便在执行完成时更新 Ui,例如:password
AsyncTask
onPostExecute
AsyncTask
doInBackground
public class LoginOperation extends AsyncTask<String, Void, String> {
String strusername,strpassword;
public LoginOperation(String strusername, String strpassword){
this.strusername=strusername;
this.strpassword=strpassword;
}
@Override
protected void onPreExecute() {
//show progressbar here
}
@Override
protected String doInBackground(String... params) {
string result="";
try
{
result=="success or fail";
//do your network opertion here
}
catch(SQLException e)
{
result="ERROR";
}
return result;
}
@Override
protected void onPostExecute(String resultmsg) {
// show error here and update UI
//or other opertion if login success
textViewInstance.setText(resultmsg);
}
}
有关 AsyncTask 方法的更多信息,请参见
http://developer.android.com/reference/android/os/AsyncTask.html