0

我正在clockandroid上构建一个简单的。

我的问题出在 while 循环上,当我使用时Thread.sleep(5000)出现错误:“ Unhandled exception type InterruptedException”。

我应该如何运行循环以使其正常工作?代码行不多,所以我完全复制了它,希望对某人有用,因为我找不到很多时钟的例子。

public class MainActivity extends Activity {
    TextView hours;
    TextView minutes;
    Calendar c;
    int cur_hours;
    int cur_minutes;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.clock_home);
        hours = (TextView) findViewById(R.id.hours);
        minutes = (TextView) findViewById(R.id.minutes);
        while (true) {
            updateTime();
            Thread.sleep(5 * 1000); // Unhandled exception type InterruptedException
            }
        }

    public void updateTime() {
        c = Calendar.getInstance();
        hours.setText("" + c.get(Calendar.HOUR));
        minutes.setText("" + c.get(Calendar.MINUTE));
        }
    }
4

1 回答 1

1

Thread.sleep抛出 InterruptedException,您需要捕获(或)重新抛出。

将 Thread.sleep 调用包装在里面try/catch

例子:

try
{
Thread.sleep(5 * 1000);
}catch(InterruptedException ie)
{
 //Log message if required.
}

编辑:

作为InterruptedException javadoc

当一个线程等待、休眠或以其他方式暂停很长时间并且另一个线程使用 Thread 类中的中断方法中断它时抛出

于 2013-01-05T05:20:15.607 回答