Handler vs Timer

    xiaoxiao2021-03-25  78

    Handler Implementation

    How to create repetitive task using Handler Handler mHandler; public void useHandler() { mHandler = new Handler(); mHandler.postDelayed(mRunnable, 1000); } private Runnable mRunnable = new Runnable() { @Override public void run() { Log.e("Handlers", "Calls"); /** Do something **/ mHandler.postDelayed(mRunnable, 1000); } }; How to remove pending execution from Handler        mHandler.removeCallbacks(mRunnable); How to schedule it again       mHandler.postDelayed(mRunnable, 1000); Where to perform Task       Runnable works under UI thread so you can update UserInterface in Handler respective Runnable

    Timer Implementation

    How to create repetitive task using Timer public void useTimer() { Timer mTimer = new Timer(); mTimer.cancel(); mTimer.schedule(new TimerTask() { @Override public void run() { Log.e("Timer", "Calls"); } }, 1000, 1000); } How to remove pending execution from Timer       mTimer.cancel(); will cancel all the schedule task. How to schedule it again         You can not reschedule Timer again. So you to create object of timer again if you are trying to reschedule its task.

    Comparison Handler VS Timer

    While rescheduling Handler is very easy, you can not reschedule Timer In Handler you can attach to any Runnable but Timer schedule for only one TimerTask TimerTask is purely background task so you can not update UserInterface, but that's not true for Handler's Runnables Timer Cause Execption Timer tends to leak more memory compare to Handler see the graph of object retains by timer and Handler. It will increase rapidly for Timer if you are creating and scheduling new task. Handler Memory Graph Timer Memory Graph Which one to use Obviously i will recommend to use Handler with Runnable
    转载请注明原文地址: https://ju.6miu.com/read-40873.html

    最新回复(0)