倒计时的问题

1.不拿手机当前时间来倒计时

2.锁屏期间,计时器会停止,单靠服务器返回的剩余时间行不通

这时候可以这样解决

 取手机已开机的运行时间


API 返回时: start Up time                API返回剩余30秒

当前: 当前的start up time    ?(新的剩余时间)



API 返回:   self.iLeftTime = r.iLastRoLeftTime.intValue;

      self.iStartUpTime = [NSDate uptime];

 timer 方法里:

    NSTimeInterval nowUpTime = [NSDate uptime];

    self.iNowLeftTime = self.iLeftTime +(self.iStartUpTime-nowUpTime);

    if (self.iNowLeftTime <=0) {

        [self.iCountDownTimer invalidate];

        self.iCountDownTimer = nil;


        return;

    }

    int min = self.iNowLeftTime/60;

    int sec = self.iNowLeftTime%60;

    self.iCountDownLabel.text = [NSString stringWithFormat:@"%02d:%02d",min,sec];

--------------------

#import <sys/sysctl.h>



+ (NSTimeInterval)uptime {

    struct timeval boottime;

    int mib[2] = {CTL_KERN, KERN_BOOTTIME};

    size_t size = sizeof(boottime);

    

    struct timeval now;

    struct timezone tz;

    gettimeofday(&now, &tz);

    

    double uptime = -1;

    

    if (sysctl(mib, 2, &boottime, &size, NULL, 0) != -1 && boottime.tv_sec != 0) {

        uptime = now.tv_sec - boottime.tv_sec;

        uptime += (double)(now.tv_usec - boottime.tv_usec) / 1000000.0;

    }

    return uptime;

}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值