私のアプリケーションでは、ネットワークからのデータに応じて UI のテキストを更新する必要があります。そのためにAsyncTask
、Android でバックグラウンドで作業を行うために を使用しています。私のコードは次のとおりです。
public class DefaultActivity extends Activity{
TextView textView;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
textView=(TextView)findViewById(R.id.textId);
new networkFileAccess().execute("background","Progress","result");
}
private class networkFileAccess extends AsyncTask<String,String,String>{
protected String doInBackground(String... background){
return changeText();
}
private String changeText(){
//Code to Access data from the Network.
//Parsing the data.
//Retrieving the boolean Value.
if(booleanistrue){
//Displaying some text on the UI.
publishProgress("someTextOnUI");
//Send request till we get get boolean value as false.
changeText();
}else{
return "success";
}
return "";
}
protected void onProgressUpdate(String... progress){
textView.setText("Wait background work is going on");
}
protected void onPostExecute(String result){
if(result.equals("success")){
//Code to finish the activity.
}
}
}
}
上記のコードでは、ブール値が false になるまでバックグラウンド スレッドを実行できますが、UI でテキストが更新されません。onProgressUpdate
メソッドを呼び出して () メソッドを使用して UI のテキストを更新できますか?何か提案がpublishProgress
あれば教えてください。