0

我正在制作一个应用程序,我想在我的代码中添加时间延迟以延迟操作。有什么可以设置毫秒的延迟吗?请帮忙。

我想做类似的事情:

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 中的计时器是一个与主程序分开运行的元素,它引发一个事件,其频率由用户设置。

4

3 回答 3

3

Thread.sleep在一个单独的线程中会这样做。

如果您没有将AsyncTask用于其他事情,请改用它。它将为您简化事情。AsyncTask 将使用一个线程池,因此您不必担心自己创建线程。

确保不要在按钮或等效项的事件回调中休眠,因为您将在 UI 线程上休眠。这将使您的应用程序显得迟钝和迟缓。只在其他线程中休眠,然后调用回 UI 进行更新。

根据更新的问题进行编辑:

看起来您正在 UI 上执行一些动画。一个单独的线程将是最好的,因为它看起来是一个长时间运行的过程。

于 2013-08-19T14:34:00.483 回答
1

如果你想阻止整个线程 - 睡眠。但不要在主线程上执行此操作,因为它会冻结您的应用程序/手机的 UI。

如果您想在将来做某事但又不想让应用程序停顿,那么您可以在几秒钟内向 Handler 发送一条延迟消息。

如果您想在更远的将来做某事,请通过 AlarmManager 设置警报。

于 2013-08-19T14:34:19.910 回答
0

查看 Thread 的 javadocs:http: //docs.oracle.com/javase/7/docs/api/java/lang/Thread.html#sleep%28long%29

于 2013-08-19T14:33:09.797 回答