在我的应用程序中,我需要根据来自网络的数据更新 UI 中的文本。为此,我使用 aAsyncTask
在 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
吗?任何建议。