How to make an Android program 'wait'

后端 未结 8 1973
心在旅途
心在旅途 2020-12-16 02:23

I want to cause my program to pause for a certain number of milliseconds, how exactly would I do this?

I have found different ways such as Thread.sleep( time )

8条回答
  •  暖寄归人
    2020-12-16 02:49

    You really should not sleep the UI thread like this, you are likely to have your application force close with ActivityNotResponding exception if you do this.

    If you want to delay some code from running for a certain amount of time use a Runnable and a Handler like this:

    Runnable r = new Runnable() {
        @Override
        public void run(){
            doSomething(); //<-- put your code in here.
        }
    };
    
    Handler h = new Handler();
    h.postDelayed(r, 1000); // <-- the "1000" is the delay time in miliseconds. 
    

    This way your code still gets delayed, but you are not "freezing" the UI thread which would result in poor performance at best, and ANR force close at worst.

提交回复
热议问题