这在 android 中如何实现?
public final Timer timer = new Timer(10, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// Do task here
}
});
我需要能够调用 timer.start();来自计时器所在的 Activity 。
最佳答案
在大多数情况下,使用 Handler 而不是 Timer 会好得多。处理程序能够发送延迟消息。使用处理程序的好处是:
- 它在主 (UI) 线程上运行 -> 可以访问 View (不同于 计时器,不能直接访问 View )
- 如果需要,您可以删除待处理的延迟消息
- 更少的代码
例子:
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);
}
}
关于Android 中的 Java 定时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11708450/