java - 定时java循环

标签 java android loops time

我是新的机器人,我希望得到一些帮助。我有这个代码:

        dateatm = (TextView) findViewById(R.id.date);
        timeatm = (TextView) findViewById(R.id.tvTime);
        Calendar currentDate = Calendar.getInstance();
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MMM/dd");
        SimpleDateFormat värk = new SimpleDateFormat("HH:mm:ss");
        String dateNow = formatter.format(currentDate.getTime());
        String timeNow = värk.format(currentDate.getTime());
        dateatm.setText(dateNow);
        timeatm.setText(timeNow);

如您所见,我正在从中获取日期和时间。我想要的是,会有 1 秒循环,所以每 1 秒后,它将一次又一次更新日期和时间到较新的日期和时间以获得基本时钟。我是个新人,所以感谢所有帮助如何完成这项工作。如果您能提供确切的示例,我将不胜感激,因为它使它更容易理解,而不仅仅是“哦,使用那个、那个、那个。谢谢!”。

感谢您的帮助和时间, Sprite :)


答案 1 错误:

08-10 18:55:41.335: ERROR/AndroidRuntime(886): FATAL EXCEPTION: Timer-0
08-10 18:55:41.335: ERROR/AndroidRuntime(886): android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
08-10 18:55:41.335: ERROR/AndroidRuntime(886):     at android.view.ViewRoot.checkThread(ViewRoot.java:2932)
08-10 18:55:41.335: ERROR/AndroidRuntime(886):     at android.view.ViewRoot.invalidateChild(ViewRoot.java:642)
08-10 18:55:41.335: ERROR/AndroidRuntime(886):     at android.view.ViewRoot.invalidateChildInParent(ViewRoot.java:668)
08-10 18:55:41.335: ERROR/AndroidRuntime(886):     at android.view.ViewGroup.invalidateChild(ViewGroup.java:2511)
08-10 18:55:41.335: ERROR/AndroidRuntime(886):     at android.view.View.invalidate(View.java:5279)
08-10 18:55:41.335: ERROR/AndroidRuntime(886):     at android.widget.TextView.checkForRelayout(TextView.java:5507)
08-10 18:55:41.335: ERROR/AndroidRuntime(886):     at android.widget.TextView.setText(TextView.java:2724)
08-10 18:55:41.335: ERROR/AndroidRuntime(886):     at android.widget.TextView.setText(TextView.java:2592)
08-10 18:55:41.335: ERROR/AndroidRuntime(886):     at android.widget.TextView.setText(TextView.java:2567)
08-10 18:55:41.335: ERROR/AndroidRuntime(886):     at viimane.voimalus.MainStuff$1.run(MainStuff.java:55)
08-10 18:55:41.335: ERROR/AndroidRuntime(886):     at java.util.Timer$TimerImpl.run(Timer.java:284)

最佳答案

我刚刚在我的项目中解决了这个问题(以特定的时间间隔执行代码):)

编辑以反射(reflect)更新的答案:

protected static final int REFRESH = 0;
private Timer timer;
private TimerTask refresher;

private Handler handler = new Handler() {
    public void handleMessage(Message msg) {
        switch (msg.what) {
        case REFRESH:
            /* your code here */
            break;
        default:
            break;
        }
    }
};

//onCreate 或类似的初始化代码:

timer = new Timer();    
refresher = new TimerTask() {
    public void run() {
        ActivityMain.this.sendEmptyMessage(REFRESH);
    };
};
// first event immediately,  following after 1 seconds each
timer.scheduleAtFixedRate(refresher, 0, 1000); 

关于java - 定时java循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7015994/

相关文章:

java - 未调用 Jersey ExceptionMapper

java - 如何访问 Spring StateMachine 配置数据

使用文件输入和输出的 C 程序结构

c - 我如何循环这些 MPI 调用,或者为了清洁起见,将它们转换为函数并循环函数?

java - 如何合并几个列表?

Java rowAtPoint() 未返回正确的值

Android 图标与 Logo

android - 从 url 下载的图像未显示在 View 中

android - 我如何解析器numberformatexception错误

.net - 如何使用 "For Each"循环修改字符串?