1.最简单的线程,启动一次就运行结束
new Thread() { @Override public void run() { } }.start();2.简单的线程,线程一直运行,isRunning = false时会退出循环
new Thread() { @Override public void run() { while (isRunning) { //写你要一直循环的内容 } } }.start();3.延迟多少秒后执行一次
new Handler().postDelayed(new Runnable() { @Override public void run() { } },2000); //延迟2s后执行4.过多少秒后每隔多少秒执行一次
Timer joinTimer = new Timer(); joinTimer.schedule(new TimerTask() { @Override public void run() { } }, 1000, 2000); //过1s后每隔2s中执行一次 joinTimer.schedule(new TimerTask() { @Override public void run() { } },2000); //过2s后只执行一次5.线程与UI交互
new Thread() { @Override public void run() { while (isTopRunning) { Message msg = new Message(); msg.what = LOOP_TAG; joinHandler.sendMessage(msg); } } }.start(); private Handler joinHandler = new Handler() { @Override public void handleMessage(Message msg) { if (msg.what == LOOP_TAG) { //做UI操作 } } };6.线程休眠多少秒执行内容
new Thread() { @Override public void run() { SystemClock.sleep(3000); } }.start();7.Timer定时器
synchronized (this) { if (mTimerTask != null) { mTimerTask.cancel(); } mTimerTask = new TimerTask() { @Override public void run() { Message msg = new Message(); msg.what = START_LOOP; repeatHandler.sendMessage(msg); } }; this.intervalTime = intervalTime; mTimer.schedule(mTimerTask, intervalTime); }每隔多少秒重复操作
Message message = handler.obtainMessage(1); handler.sendMessageDelayed(message, 0); //发送message final Handler handler = new Handler(){ public void handleMessage(Message msg){ // handle message switch (msg.what) { case 1: //to do you want(UI操作,网络请求) //-----比如start if (homePresenter != null) { homePresenter.getTopJoin(); } //-----比如end Message message = handler.obtainMessage(1); handler.sendMessageDelayed(message, INTERVALTIME); //发送message , 这样消息就能循环发送 } super.handleMessage(msg); } };每隔多少秒操作重复操作,最好别用Timer操作,间隔时间不稳定
