您的位置:首页 > 移动开发 > Android开发

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

2015-01-30 16:30 344 查看
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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: