私によると、使いやすく、スレッドの実行が完了したときにUiを更新するための個別のロジックを作成するための追加のコードを実行することなく、バックグラウンドスレッドをより適切に制御できるため、代わりにAsyncTaskThread
を使用します。進行単位を計算して、操作にかかる時間をユーザーに知らせます。やることなど
最初の質問は、どのように送信してボタンをクリックするかです。この場合、コンストラクターを次のように使用します。username
password
AsyncTask
AsyncTask
LoginOperation loginopertion=new LoginOperation(strusername, strpassword);
loginopertion.execute("");
2番目の回答は、タスクが完了したときにUiを受け取り、更新する方法です。たとえば、実行が完了したときにUiを更新するためusername
に使用します。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