Android开发各种线程

    xiaoxiao2021-03-25  102

    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操作,间隔时间不稳定

    转载请注明原文地址: https://ju.6miu.com/read-23044.html

    最新回复(0)