在活动的onCreate()事件中,我已经启动了一个AsyncTask来从数据库检索产品数据.成功完成后,如何更新显示?
元代码:
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.venueviewbasic); (..) new GetProductDetails().execute(); class GetProductDetails extends AsyncTask<String,String,String> { protected String doInBackground(String... params) { // updating UI from Background Thread runOnUiThread(new Runnable() { public void run() { // Check for success tag int success; try { // Building Parameters List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("id",vid)); (.. retrieve and parse data and set new textview contents ..)
文字浏览等不会更新.
解决方法
如果要在完成过程之后从异步更新视图
您可以使用
您可以使用
protected void onPostExecute(String result) { textView.setText(result); }
但是如果要在运行后台进程时更新数据,请使用.
对于…
protected Long doInBackground(URL... urls) { int count = urls.length; long totalSize = 0; for (int i = 0; i < count; i++) { totalSize += Downloader.downloadFile(urls[i]); publishProgress((int) ((i / (float) count) * 100));<------ } return totalSize; } protected void onProgressUpdate(Integer... progress) { <------- setProgressPercent(progress[0]); }
更多细节见this link希望这会帮助你!