线程延时android
2016-10-09 21:12:26 qq_18413391 阅读数 371



 在Java中有时候需要使程序暂停一点时间,称为延时。普通延时用Thread.sleep(int)方法,这很简单。它将当前线程挂起指定的毫秒数。


  1. try   
  2. {   
  3. Thread.currentThread().sleep(1000);//毫秒   
  4. }   
  5. catch(Exception e){
  6. }  

在这里需要解释一下线程沉睡的时间。sleep()方法并不能够让程序"严格"的沉睡指定的时间。例如当使用5000作为sleep()方法的参数时,线 程可能在实际被挂起5000.001毫秒后才会继续运行。当然,对于一般的应用程序来说,sleep()方法对时间控制的精度足够了。

 

但是如果要使用精确延时,最好使用Timer类:


延时跳转界面

Timer timer = new Timer();
TimerTask task = new TimerTask() {
   @Override
   public void run() {
      // TODO Auto-generated method stub
      Intent intent = new Intent(getActivity()MobilePosType.class);
      startActivity(intent);
   }
};

timer.schedule(task1000);




2018-07-24 17:33:44 meixi_android 阅读数 283

创建前台线程

    static final int REFRESH_COMPLETE = 0X1112;
    private Handler mHandler = new Handler() {
        public void handleMessage(android.os.Message msg) {
            switch (msg.what) {
                case REFRESH_COMPLETE:
//todo...
                    break;
            }
        }
    };

后台线程调用前台线程,循环线程

new Thread() {
    @Override
    public void run() {
        super.run();

        running = true;
        int i = 0;
        while (running) {
            mHandler.sendEmptyMessageDelayed(REFRESH_COMPLETE, 1000);
            try {
                sleep(5000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}.start();

 

延时线程

new Thread(){
    @Override
    public void run() {

        try {
            Thread.sleep(5 * 100);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        mHandler2=new Handler();
        Log.i("Lgq","s....e33.");
    }
}.start();

 

2012-10-30 15:49:51 h7870181 阅读数 8708

创建线程的方法:

1、继承Thread类重写run()方法

public class testThread extends  Thread{
		@Override
		public void run() {
			// TODO Auto-generated method stub
			super.run();
		}
	}


2、实现Runnable类重写run()方法

public class testThread implements Runnable{
		@Override
		public void run() {
			// TODO Auto-generated method stub
		}
	}

其实还可以这样写

Runnable testThread = new Runnable(){
     public void run(){

     }
}


开启线程:

一般开启线程是直接

1、new testThread().start();   或    2、new Thread(testThread).start();  或 3、GameView.this.post(testThread);

这样来开启线程。

 

假如我们游戏中要做到延时开启线程就应该

GameView.this.postDelayed(testThread, 1000);  //第一个参数为线程名,第二个是时间以毫秒为单位

停止线程则应该

GameView.this.getHandler().removeCallbacks(testThread); //参数为线程名


 

 

2014-03-21 20:28:30 chenaini119 阅读数 817

上面讲了几种android的延时方法,

开启新线程,开启定时器等等,这里还有一种更简单的延时。


handler2.sendEmptyMessageDelayed(0x123, 5000);

handler2 = new Handler(){
    public void handleMessage(Message msg){
    keyzhi = 0xFF;

}

看这程序,handmessage是隔了5s才开始处理,直接实现了android的延时操作

2018-03-03 15:36:28 qq_27061049 阅读数 181

####1、.使用Handler的postDelayed方法实现延时操作

       
            Handler handler=new Handler();
            Runnable runnable=new Runnable(){
                @Override
                public void run() {
                    // TODO Auto-generated method stub
                    dosomething();
                }

            };
	    Log.v(TAG, "Dialog show delay 3s");
            handler.postDelayed(runnable, 3000);

####2、使用线程的休眠实现延时操作

            new Thread() {
                @Override
                public void run() {
                    super.run();
                    try {
                        Thread.sleep(3000);//休眠3秒
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    /**
                     * 要执行的操作
                     */
                     dosomething();
                }
            }.start();

####3、使用TimerTask实现延时操作

  TimerTask task = new TimerTask() {
            @Override
            public void run() {
              /**
               *要执行的操作
               */
	     dosomething()
            }
        };
        Timer timer = new Timer();
        timer.schedule(task, 3000);//3秒后执行TimeTask的run方法

文献参考:

1、Android中实现延时执行操作的几种方法
http://blog.csdn.net/mq2856992713/article/details/52005253

android 延时执行

阅读数 972

Android延时代码

阅读数 271

Android延时操作方法

阅读数 5019

没有更多推荐了,返回首页