Android Handler Runnable 实现循环定时加载 固定次数加载

来源:互联网 发布:博微预算软件 编辑:程序博客网 时间:2024/06/01 08:49

一、循环加载:

public class MainActivity extends AppCompatActivity {        private int TIME = 3000;//定时的时间间隔    private Handler handler = new Handler();    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        findViewById(R.id.btn).setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                click();            }        });    }    private void click() {        handler.postDelayed(runnable, TIME); //每隔1s执行    }    Runnable runnable = new Runnable() {        @Override        public void run() {            needLoopFunction();        }    };    private void needLoopFunction() {        Log.e("TAG", "====" + System.currentTimeMillis());        handler.postDelayed(runnable, TIME); //延迟加载    }}
二、固定次数加载

public class MainActivity extends AppCompatActivity {    private int TIME = 3000;//定时的时间间隔    private int mCountTag = 0;//作为计数次数的标志    private Handler handler = new Handler();    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        findViewById(R.id.btn).setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                click();            }        });    }    private void click() {        handler.postDelayed(runnable, TIME); //每隔1s执行    }    Runnable runnable = new Runnable() {        @Override        public void run() {            if (mCountTag > 9) {//超过十次就结束掉                handler.removeCallbacks(runnable);            } else {                needLoopFunction();            }        }    };    private void needLoopFunction() {        mCountTag++;        Log.e("TAG", "====" + System.currentTimeMillis());        handler.postDelayed(runnable, TIME); //延迟加载    }}

阅读全文
0 0
原创粉丝点击