A. android中用什么替换Thread.sleep
android 中,有的时候用Thread.sleep()是不合适的。
例如,你在用ProgressDialog 的时候,如果用的不合适,会使Progressdialog图标不转动。
代替方法是,用Handler.postDelayed需求是等2s,请求一下服务器。等待的时候,显示ProgressDialog 。
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
sendMessage("");//耗时操作
替换成
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
sendMessage("");//耗时操作
}
}, 2000);
B. android中google有一个方法可以替代 Thread.sleep()方法来着。它不需要try catch,叫啥
如果是想延时一下,在处理业务逻辑的话,可以使用handler类提供的方法:handler.postDelayed()直接延时操作
C. android开发中线程有几种状态,分别是哪些
【答案】:1)、新建状态(New):新创建了一个线程对象。
2)、就绪状态(Runnable):线程对象创建后,前蚂消其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。
3)、运行状态(Running):就绪状态的线程获取了CPU,执行run()方法。
4)、阻塞状态(Blocked):阻塞状态是线程因为某种原因放弃CPU使用权,暂时停止运行。直到线程进入就绪状态,才有机会转到运行状态。阻塞的情况分三种:
(一)、等待阻塞慧知:运行的线程执行wait()方法,JVM会把该线程放入等待池中。
(二)、同步阻塞:运行的线程在获取对象的同步锁时,若该同步锁被别的线程占用,则JVM会把该线程放入锁物卜池中。
(三)、其他阻塞:运行的线程执行sleep()或join()方法,或者发出了I/O请求时,JVM会把该线程置为阻塞状态。当sleep()状态超时、join()等待线程终止或者超时、或者I/O处理完毕时,线程重新转入就绪状态。
5)、死亡状态(Dead):线程执行完了或者因异常退出了run()方法,该线程结束生命周期。
当调用start方法的时候,该线程就进入就绪状态。等待CPU进行调度执行,此时还没有真正执行线程。
当调用run方法的时候,是已经被CPU进行调度,执行线程的主要任务。
D. Android延时操作的几种方式
在Android开发中我们可能会有延时执行某个操作的需求,例如我们启动应用的时候,一开始呈现的是一个引导页面,过了两三秒后,会自动跳转到主界面。这就是一个延时操作。
下面是实现延时执行操作的几种方法:
1.使用线程的休眠实现延时操作
new Thread() { @Override
public void run() { super.run();
Thread.sleep(3000);//休眠3秒
/**
* 要执行的操作
*/
}
}.start();
2.使用TimerTask实现延时操作
TimerTask task = new TimerTask() { @Override
public void run() { /**
*要执行的操作
*/
}
};
Timer timer = new Timer();
timer.schele(task, 3000);//3秒后执行TimeTask的run方法
3.使用Handler的postDelayed方法实现延时操作
Handler handler = new Handler();
handler.postDelayed(new Runnable() { @Override
public void run() { /**
*要执行的操作
*/
}
}, 3000);//3秒后执行Runnable中的run方法
E. android开发等待一段时间后执行下一条语句,但是thread.sleep(30000)之后线程就挂起了
android的开发思路中,基本上都是由子线程去执行任务的,然后执行完了之后发回message再由handler去处理。这样才不会影响程序连贯性的操作。
你这个需要sleep之后再执行的语句,就放到子线程中去。
F. 安卓 lua语言 在for中,如何写指令延时指令
sleep() 函数?
android:Sleep(100) --延时100ms。
不过这样写,最好使用多线程,不然程序化卡在那。