栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Andorid 开发之子线程更新UI AsyncTask

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Andorid 开发之子线程更新UI AsyncTask

public class MainActivity extends AppCompatActivity {
    private ProgressBar progressBar;
    private Button btnDownLoad;
    private TextView txtView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
    }

    private void initView() {
        progressBar = findViewById(R.id.progressBar);
        btnDownLoad = findViewById(R.id.btnDownLoad);
        txtView = findViewById(R.id.txtView);
    }

    public void onDownLoad(View view) {
        new DownLoadTask().execute(20);
    }

    class DownLoadTask extends AsyncTask {
        
        @Override
        protected void onPreExecute() {
            txtView.setText("下载中。。。");
        }

        @Override
        protected Boolean doInBackground(Integer...integers) {
            int progress = integers[0];
            while (true) {
                progress+=5;
                publishProgress(progress);
                try {
                    Thread.sleep(500);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                if (progress > 100) {
                    return true;
                }
            }
        }

        @Override
        protected void onProgressUpdate(Integer... values) {
            int progress = values[0];
            progressBar.setProgress(progress);
        }

        @Override
        protected void onPostExecute(Boolean aBoolean) {
            if (aBoolean) {
                txtView.setText("下载完毕!");
            }
        }
    }
}

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/691469.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号