這怎麼能在android中完成?Android中的Java定時器
public final Timer timer = new Timer(10, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// Do task here
}
});
我需要能夠調用timer.start();從
這怎麼能在android中完成?Android中的Java定時器
public final Timer timer = new Timer(10, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// Do task here
}
});
我需要能夠調用timer.start();從
在大多數情況下,使用處理程序而不是定時器是好得多。處理程序能夠發送延遲的消息。使用處理程序的好處是:
實施例:
class MyActivity extends Activity {
private static final int DISPLAY_DATA = 1;
// this handler will receive a delayed message
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
// Do task here
if (msg.what == DISPLAY_DATA) displayData();
}
};
@Override
void onCreate(Bundle b) {
//this will post a message to the mHandler, which mHandler will get
//after 5 seconds
mHandler.sendEmptyMessageDelayed(DISPLAY_DATA, 5000);
}
}
給我致命的異常定時器-0 – 2012-07-29 11:14:27
好了解決了錯誤,但我怎麼稱這種方法可以說每2秒? – 2012-07-29 12:08:00
如果你想要的信息每兩秒鐘,去爲: 「私人處理程序mHandler =新的處理程序(){ @覆蓋 無效的handleMessage(信息MSG){// 做這裏的任務 如果(msg.what == DISPLAY_DATA )displayData(); mHandler.postEmptyMessageDelayed(DISPLAY_DATA,2000); } };' Rr您可以從定時器向消息處理器發送消息。 – 2012-07-29 13:37:04
該定時器是在活動嘗試這樣的:
// this will run when timer elapses
TimerTask myTimerTask = new TimerTask() {
@Override
public void run() {
// ...
}
};
// new timer
Timer timer = new Timer();
// schedule timer
timer.schedule(myTimerTask, delayInMs);
如果你想在活動的主線程來完成任務,修改如下:
// get a handler (call from main thread)
final Handler handler = new Handler();
// this will run when timer elapses
TimerTask myTimerTask = new TimerTask() {
@Override
public void run() {
// post a runnable to the handler
handler.post(new Runnable() {
@Override
public void run() {
// ...
}
});
}
};
// new timer
Timer timer = new Timer();
// schedule timer
timer.schedule(myTimerTask, delayInMs);
而不是使用'Handler'你可以簡單地調用'runOnUiThread(Runnable接口)'。 – 2016-08-03 08:40:44
是的,但只在一個活動... – 2017-09-23 20:02:00
我已經回答這個在另一個問題。
我會避免TimerTask,如果你把它們中的很多關掉,它們不僅難以管理,而且性能也不好。
這幾天我會爲幾乎任何基於時間的任務推薦Handler
。
[你嘗試過什麼?](http://whathaveyoutried.com) – nkr 2012-07-29 10:22:12