现在的位置: 首页 > 移动开发 > 正文

android开发中延迟执行任务方法

2019年07月21日 移动开发 ⁄ 共 1147字 ⁄ 字号 评论关闭

android App开发在某些情况下需要有延时功能,比如说App首页显示定格3秒,然后自动跳到登录页的情况,这就好比是一个预加载,但是这个预加载可能瞬间就完成了,撑不到3秒钟,这是就要求你做延时处理。

下面是三种方法:

一、线程

    new Thread(new Runnable(){  
       public void run(){  
            Thread.sleep(XXXX);  
           handler.sendMessage();----告诉主线程执行任务  
       }  
    }).start  

二、延时器

TimerTask task = new TimerTask(){    
     public void run(){    
     //execute the task     
     }    
. };    
 Timer timer = new Timer();  
   timer.schedule(task, delay); 

三、android Handler消息处理

    new Handler().postDelayed(new Runnable(){    
        public void run() {    
        //execute the task    
        }    
     }, delay);   

个人推荐使用第三种

===================================================

在android中,可以利用Handler类的postDelayed()方法进行延时,这有什么作用呢?比如,我们打开运用后显示一个主界面,延时3秒进入功能界面,这时候就可以用这个东西
	1.具体用法:
		1.1 定义一个类,实现Runnable接口,也就是开启一个线程,在run方法中实现我们的业务逻辑,这里是用意图去激活主界面(MainActivity)
			private class LoadMainActivity implements Runnable {
				@Override
				public void run() {
					// 用意图去激活主界面(MainActivity)
					Intent intent = new Intent(SplashActivity.this, MainActivity.class);
					startActivity(intent);
					// 关闭当前的splash界面
					finish();
				}
			}
		 1.2在我们当前的Activity适当的地方(根据业务需求来定,比如,判断网络可用的情况下打开主界面,这个时候就可以调用LoadMainActivity类)
		//代码片段如下:
		// 通过hander延时3秒执行某个任务(这里是打开主界面(MainActivity))
		//postDelayed(r, delayMillis);r表示一个线程的接口,用匿名内部类实现这个Runable接口,,如1.1中所示,delayMillis表示延时的时长
		new Handler().postDelayed(new LoadMainActivity(), 3000);

抱歉!评论已关闭.