我正在创建一个应用程序,我希望为我的代码添加时间延迟以延迟操作。 有没有什么可以设置毫秒的延迟? 请帮忙。
我想做类似的事情:
for(int i=1;i<100;i++){
Delay(1000); // I want to add a delay so that this wont happend instanlty
Matrix matrix=new Matrix();
matrix.postRotate((float) angle2,width, height);
image.setImageMatrix(matrix);
调用Thread.sleep()导致ANR android中的Visual Basic中是否有类似计时器的东西? vb中的Timer是一个从主程序中单独运行的元素,它会导致频率由用户设置的事件。
答案 0 :(得分:3)
Thread.sleep在一个单独的线程中会这样做。
如果你没有使用AsyncTask来代替其他东西。它会为你简化一些事情。 AsyncTask将使用一个线程池,因此您不必担心自己创建一个线程。
请确保不要在按钮或等效事件的事件回调中睡觉,因为您将在UI线程上休眠。这将使您的应用程序显示无响应和缓慢。只在其他一些线程中休眠,然后调用UI进行更新。
根据更新的问题进行编辑:
看起来你在UI上执行了一些动画。一个单独的线程最适合这个,因为它看起来是一个长时间运行的过程。
答案 1 :(得分:1)
如果你想要保持整个线程 - 睡眠。但是不要在主线程上执行此操作,因为它会冻结您的应用程序/手机的UI。
如果你想在将来做一些事情而不是暂停应用程序,几秒钟后你就可以向处理程序发送一条延迟的消息。
如果您想在更遥远的将来做某事,请通过AlarmManager设置闹钟。
答案 2 :(得分:0)