java - 屏幕关闭时计时器停止工作

标签 java android timer handler

大家好,我是 Android 和 java 语言的新手。 我有这个代码可以告诉你玩了多长时间。 代码工作正常,除非屏幕关闭或用户按下电源按钮( sleep 模式)时它停止工作。 任何人都可以建议一个简单的代码来保持我的时间计数,即使在屏幕关闭或处于 sleep 模式时也是如此。谢谢...

public class test extends Activity 
{
    Handler mHandler = new Handler();

    Runnable mUpdateTime = new Runnable() 
    {
        public void run() 
        { 
            sec += 1;
            if(sec >= 60) 
            {
                sec = 0;
                min += 1;
                if (min >= 60) 
                {
                    min = 0;
                    hour += 1;
                }
            }
            playtime.setText(String.format("%02d:%02d:%02d", hour, min, sec));
            mHandler.postDelayed(mUpdateTime, 1000);
        }
    };


    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        mHandler.postDelayed(mUpdateTime, 1000);
    }
}

最佳答案

我建议不要计算时间,而是设置一个开始时间,然后从当前时间中减去该时间以获得耗时。

关于java - 屏幕关闭时计时器停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13020564/

相关文章:

Java Dom 获取属性

java - 如何为 Dataflow 作业指定多个输入路径

android - 关于谷歌最新架构指南的 MVVM 模式,如何将数据(通知)从存储库类传递到模型 View 类

android - Flutter 状态栏透明

android - MutableLiveData 中 setValue() 和 postValue() 的区别

c - 如果计数值大于它可以容纳的值,CPU 计时器如何工作?

c++ - 这个常量不正确吗?

android - 如何控制 Android ImageSwitcher 中的过渡持续时间

java - 在 Java 中查询 XML 的最简单方法

java - 如何从数据库中检测 JSON 列类型