我制作了一个简单的计时器示例,但它必须按原样运行。 这是代码
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秒后出现一片吐司,但它不会发生。请建议正确的方法。
答案 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();
}
});
}