Android 计时器滴答一次后停止

标签 android timer chronometer

我需要在 10 秒后隐藏 TextView。我想我可以实现一个计时器,当耗时大于 10000 毫秒时,我隐藏 TextView。我的问题是计时器只滴答一次然后就停止了。知道我错过了什么吗?

Activity ctx = this;
...

private void ShowText(String message)
    {
        txtProceed.setText(message);
        txtProceed.setVisibility(View.VISIBLE);


        chronoHideText = new Chronometer(ctx);
        chronoHideText.setOnChronometerTickListener(new OnChronometerTickListener()
        {
               public void onChronometerTick(Chronometer arg0) {

                  long elapsed = SystemClock.elapsedRealtime() - chronoHideText.getBase();
                  Log.i("Chrono",String.valueOf(elapsed));
                   if (elapsedTime>10000)
                   {
                       txtProceed.setVisibility(View.INVISIBLE);
                       chronoHideText.stop();
                   }
               }
        }
        );

        chronoHideText.setBase(SystemClock.elapsedRealtime());
        chronoHideText.start();

    }

感谢 Janusz 的帮助。现在有效的解决方案是:

Handler splashHandler = new Handler() {
            @Override
            public void handleMessage(Message msg) {
                    switch (msg.what) {
                    case 0:
                            //remove SplashScreen from view
                            txtProceed.setVisibility(View.INVISIBLE);
                            break;
                    }
                    super.handleMessage(msg);
            }
    };

    Message msg = new Message();
    msg.what = 0;
    splashHandler.sendMessageDelayed(msg, 10000);

最佳答案

您可以使用 handler发送延迟消息。 sendMessageDelayed 方法使您能够指定时间,在该时间过去后您将收到一条消息。如果您只需要在经过一段时间后执行一件事,您可以将 View 隐藏在 handleMessage 中。方法。

这样你就不需要自己测量时间并每秒或毫秒进行计算工作。在 Android 操作系统传送消息之前,您的应用不会占用任何 CPU 时间。

关于Android 计时器滴答一次后停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4022628/

相关文章:

Android JobIntentService 已弃用

android - Sinch无法在后台运行(Android)

python - 如何让我的程序休眠 50 毫秒?

android - R.layout.chronometer 无法解析或不是字段 - android 错误

java - 我正在尝试使用 OnChronometerTickListener 实现计时器

android - 如何避免两个 Chronometers 开始时间之间的毫秒差异?

android - 什么是 com.android.externalstorage?

android - 在 MVP 中的 DaggerApplicationComponent 中出现错误

iOS 7 : Audio not playing in background

Contiki定时器不暂停进程