如何创建一个倒数计时器,当屏幕关闭时停止并“等待”,重新打开时恢复。安卓
Posted
技术标签:
【中文标题】如何创建一个倒数计时器,当屏幕关闭时停止并“等待”,重新打开时恢复。安卓【英文标题】: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 中编写一个基本的倒计时计时器,当用户关闭手机(屏幕关闭)时停止,并在屏幕重新打开时重新启动。在这方面仍然是一个完整的菜鸟,我只需要可以工作并执行此操作的基本代码。
谢谢
我已经有了一个基本的界面...
【问题讨论】:
【参考方案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. 回答的 *** 对于屏幕开关状态,您可以尝试使用 ACTION_SCREEN_ON 和 ACTION_SCREEN_OFF Intents,如这篇博文所示:[http://thinkandroid.wordpress.com/2010/01/24/handling-screen-off-and-screen-on-intents/2
【讨论】:
谢谢!有时间会复习一下以上是关于如何创建一个倒数计时器,当屏幕关闭时停止并“等待”,重新打开时恢复。安卓的主要内容,如果未能解决你的问题,请参考以下文章