【问题标题】:How to create a countdown timer that stops and "waits" when the screen is off, resumes when back on. Android如何创建一个倒数计时器,当屏幕关闭时停止并“等待”,重新打开时恢复。安卓
【发布时间】:2016-01-24 15:34:57
【问题描述】:

如何创建一个倒数计时器,它在屏幕关闭时停止并“等待”,在重新打开时恢复。

正如标题所说,如何在 Android Studio 中编写一个基本的倒计时计时器,当用户关闭手机(屏幕关闭)时停止,并在屏幕重新打开时重新启动。在这方面仍然是一个完整的菜鸟,我只需要可以工作并执行此操作的基本代码。

谢谢

我已经有了一个基本的界面...

【问题讨论】:

    标签: android android-studio timer screen countdown


    【解决方案1】:

    使用带有 Runnable 的 Handler,每秒调用一次。

    Handler handler = new Handler();
    int countdown = 300; // set countdown value in seconds
    Runnable countdownRunnable = new Runnable() {
        @Override
        public void run() {
            countdown--;
    
            if(countdown == 0) {
                // countdown finished
            } else {
                handler.postDelayed(this, 1000);
            }
        }
    }
    

    首先,以handler.post(countdownRunnable) 开始倒计时。在 Activity/Fragment onStop() 中,使用 handler.removeCallbacks(countdownRunnable); 从处理程序中删除可运行对象,然后使用 handler.post(countdownRunnable)onStart() 中再次添加它。

    另外,不要忘记保存和恢复状态(当前倒计时值)。

    【讨论】:

      【解决方案2】:

      正如 Nacho L. 回答的 Stackoverflow 对于屏幕开关状态,您可以尝试使用 ACTION_SCREEN_ON 和 ACTION_SCREEN_OFF Intents,如这篇博文所示:[http://thinkandroid.wordpress.com/2010/01/24/handling-screen-off-and-screen-on-intents/2

      【讨论】:

      • 谢谢!有时间会复习一下
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多