首页 > 解决方案 > 如何在我的 Android 应用中添加睡眠定时器

问题描述

我的项目是一个收音机应用程序,我想添加一个睡眠计时器,以便用户可以将其设置为在指定时间后关闭应用程序。

标签: javaandroidtimersleep

解决方案


请使用 startTimer(long ms) 启动倒数计时器并取消计时器停止。并在屏幕关闭后使用唤醒锁继续计时器。

CountDownTimer cTimer = null;
void startTimer(long time) {
     if(!wakeLock.isHeld()) {
        PowerManager mgr = (PowerManager) getApplicationContext().getSystemService(Context.POWER_SERVICE);
        wakeLock = mgr.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "SonaHeartLock");
        wakeLock.acquire();
    }
    cTimer = new CountDownTimer(time, 1000) {
        public void onTick(long millisUntilFinished) {

            timerSync = millisUntilFinished;
        }

        public void onFinish() {

            timerSync = 0;

            System.exit(0);

        }
    };
    cTimer.start();
}


//cancel timer
void cancelTimer() {

    if (cTimer != null) {
        timerSync = 0;
        cTimer.cancel();
        cTimer=null;
        if(wakeLock!=null && wakeLock.isHeld())
            wakeLock.release();
    }

}

推荐阅读