关于Inactivity()函数配合活动对象,获取手机不活动时间,实现特定功能

 Inactivity()函数官方SDK的解释为

 

Requests an event if no activity occurs within the specified interval.

 

所以可以使用Inactivity()配合AO获取手机不活动的时间,实现某些特定功能

 

先看Start()函数的实现

void CActiveBall::Start(TTimeIntervalSeconds aTimeout)
{
 Cancel();
 iTimeout = aTimeout;
 iInactivity = ETrue;
 Inactivity(iTimeout);
}

void CActiveBall::Stop()
{
 Cancel();
}

 

当然数据的初始化是必不可少的,下面一并贴出
// constructor
CActiveBall::CActiveBall(MObserver& aObserver)
:CTimer(EPriorityStandard), iObserver(aObserver)
{
 // No implementation required
}

// EPOC default constructor can leave.
void CActiveBall::ConstructL()
{
 //this is explicitly decareded in the CTimer document
 CTimer::ConstructL();

 // The following line is also essential!
 CActiveScheduler::Add(this);
}


void CActiveBall::RunL()
{
 if(iStatus!=KErrNone)
 {
  return;
 }

 if (iInactivity)
 {
  TTimeIntervalSeconds inactivity = User::InactivityTime().Int();
  if (inactivity >= iTimeout)
  {
   iObserver.StartDisPlay();    //设置的获取到的手机不活动时间已到,调用某设置

   if(!IsActive())
   {
    Inactivity(0);
    iInactivity = EFalse;
   }
  }
  else
  {
   Inactivity(iTimeout);
  }
 }
 else
 {
  iObserver.CloseDisPlay();     //手机处于活动状态,调用某设置 
  if (!IsActive())
  {
   Inactivity(iTimeout);
   iInactivity = ETrue;
  }
 }

 if (!IsActive())
 {
  SetActive();
 }
}

 

好了呵呵。

以上代码在3rd MR ,3rd fp1上测试可用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值