android - 每隔 X 次用天文钟做一些事情

标签 android time timer

我比较菜鸟 我有一个天文台,当我点击一个按钮时它开始计时

    crono = (Chronometer) findViewById(R.id.crono);
begin= (Button) findViewById(R.id.begin);
begin.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View arg0) {

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

every minute do something ////////

    }
});

每分钟我应该做什么? 例如 1:00 ---> 做某事 2:00 ---> 做某事

我们将不胜感激任何建议。 :)

最佳答案

尝试使用 OnChronometerTickListener:

@Override
public void onClick(View arg0) {
    crono.setBase(SystemClock.elapsedRealtime());
    crono.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
        private long mTicks = 0;
        public void onChronometerTick(Chronometer chronometer) {
            if ((mTicks / 60) == 0) { // adapt period here
                // do something
            }
            mTicks++;
        }
    });
    crono.start();
}

我不确定,天文钟的滴答频率,我猜是每秒。如果是其他情况,您可能需要调整期间。

如果不是固定周期,你需要像这样检查时间:

@Override
public void onClick(View arg0) {
    crono.setBase(SystemClock.elapsedRealtime());
    crono.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
        private long mLastAction = 0;
        public void onChronometerTick(Chronometer chronometer) {
            now = System.getCurrentMillies();
            if (now - mLastAction > 60 * 1000) {
                // do something
                mLastAction = now;
            }
        }
    });
    crono.start();
}

也许,第二个更好。

关于android - 每隔 X 次用天文钟做一些事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18656064/

相关文章:

Java:访问全局变量值时出现问题

android - 当涉及到 Android 库项目时,Eclipse/ADT 有多聪明?

python - Linux 中的 GetLastInputInfo 等效于检测上次输入时间

C# : start up an application on specific time

android - 在 Android 上为 AIR 和 Flash Player 创建单个 Flash 应用程序

java - 如何使用 GeoDataApi.getPlaceById?

java - System.nanoTime() 是否保证返回唯一值?

Python 值错误 : unconverted data remains:

javascript - D3js 随时间绘制?

java - 如何制作定时器?