如何在n分钟后暂停一个线程

时间:2014-10-23 09:01:35

标签: android multithreading runnable android-handler

我正在使用runnable和handler。我想同时旋转视图。

这是我的来源:

public void rotateImage(final View myView, final int size) {
    myHandler = new Handler();
    runnable = new Runnable() {

        @Override
        public void run() {
            int time = (2 * 60 * 1000) / 150;
            if (size > time) {
                myHandler.removeCallbacks(this);
                return;
            }
            myView.setRotation(myView.getRotation() + size);
            rotateImage(myView, size);
        }
    };
    myHandler.postDelayed(runnable, 150);
}

它正常工作,我可以每150毫秒旋转一次视图,但现在我想暂停/停止线程,例如两分钟后。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

你可以计算你需要达到2分钟的迭代次数,并改变你可以这样运行

   @Override
   public void run() {
        if (currentIteration > mTotalIterations) {
            myHandler.removeCallbacks(this);
            currentIteration = 0;
            return;
        }
        ++currentIteration;
        myView.setRotation(myView.getRotation() + size);
        rotateImage(myView, size);
        myHandler.postDelayed(this, 150); 
    }

你必须只创建一个runnable并且只创建一个处理程序