Android 中的 Java 定时器

标签 java android timer

这在 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/

相关文章:

java - 如何通过两跳 SSH 隧道使用 JProfiler

java - 是否可以删除 ArrayList 引用?

android - Material 设计组件按钮全局主题覆盖 splinter

Android 安全更改 UID

java - 使用 TimerTask 移动 JPanel

ASP.NET/计时器/表格 + 图像 = 没有勾选/更新

Java 8 lambda 泛型接口(interface)方法

java - 如何在 Sonarqube 中导入 findbugs/PMD

java - 将对象实例绑定(bind)到小部件实例

java - 拍摄物体后如何停止定时器功能?