zoukankan      html  css  js  c++  java
  • 循环执行AsyncTask

    /*定义部分
      一般作为当前Activity的内部类来定义
    */
    
    /**
         * 循环执行异步线程
         */
        public class LoopTask extends AsyncTask<String, Integer, Void> {
    
            @Override
            protected Void doInBackground(String... inputParameterOrNull) {
                //插入网络传输等Android会报异常(含loop字样),可能造成耗时的操作代码
                String parameter1=inputParameterOrNull[0];//传入的参数数组,调用方式有点麻烦。不需要也可以不传。
                return null;
    
            }
    
            @Override
            protected void onPostExecute(Void result) {
                //插入修改文本控件显示内容等更新主线程的UI操作代码
                textView.setText("完成");
                //【关键代码】递归调用,实现循环执行
                this.execute();
            }
    
            @Override
            protected void onPreExecute() {
                textView.setText("开始");
            }
    
            @Override
            protected void onProgressUpdate(Integer... values) {
                textView.setText("执行中");
            }
    
        }
    
    
    /*使用部分
      在主线程代码部分,一般在create()调用
    */
      new LoopTask().execute();//一次调用,自身循环调用。按返回退出当前Activity后则该线程一同终止循环。


    有错误和疑问的,非常欢迎指出和交流。直接回复留言即可。本人会定期查看。谢谢光临!
  • 相关阅读:
    #define中的特殊符号
    c++ windows下计时
    c++内存池
    u3d 场景资源打包
    Unity3d 动态加载材质方法
    Unity3D Shader基础教程
    Unity3D Shader入门指南(一)
    Unreal发展史
    阴影锥(shadow volume)原理与展望
    软硬RAID 和 不常见的RAID
  • 原文地址:https://www.cnblogs.com/hsqzggg/p/3157004.html
Copyright © 2011-2022 走看看