android – AsyncTask – 执行后,如何更新视图?

android – AsyncTask – 执行后,如何更新视图?,第1张

概述在活动的onCreate()事件中,我已经启动了一个AsyncTask来从数据库检索产品数据.成功完成后,如何更新显示? 元代码: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.venueviewbasic); @H_301_0@在活动的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希望这会帮助你!

总结

以上是内存溢出为你收集整理的android – AsyncTask – 执行后,如何更新视图?全部内容,希望文章能够帮你解决android – AsyncTask – 执行后,如何更新视图?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1133787.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存