简单的计时器示例,但它不会正常工作

时间:2011-02-07 12:30:05

标签: java android

我制作了一个简单的计时器示例,但它必须按原样运行。 这是代码

public class TimerExample extends Activity {
private Timer timer;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    timer=new Timer();
    timer.schedule(new TimerTask(){

        @Override
        public void run() {
            // TODO Auto-generated method stub
            TimerMethod();

        }

    }, 0, 10000);

}

public void TimerMethod()
{
    Toast.makeText(getApplicationContext(), "Hi this is piyush", Toast.LENGTH_LONG).show();
}
}
必须在10秒后出现一片吐司,但它不会发生。请建议正确的方法。

1 个答案:

答案 0 :(得分:2)

计时器的run方法未在UI线程中运行,因此您无法直接对UI执行任何操作。因此,您可以使用runOnUiThread方法包装 UI部分

public void TimerMethod() {
    runOnUiThread(new Runnable() {
        @Override
        public void run() {
            Toast.makeText(getApplicationContext(), "Hi this is piyush", Toast.LENGTH_LONG).show();
        }
    });
}