CPeriodic* iPeriodicTimer;
iPeriodicTimer = CPeriodic::NewL( CActive::EPriorityStandard );//对周期类的初始声明,通常在二次构造中
void CClass::StartTimer()//开始启动时钟
{
if ( !iPeriodicTimer->IsActive() )
{iPeriodicTimer->Start( 1, 1,
TCallBack( CClass::Period, this ) );//TcallBack是一个回调函数,他只能回调类中的静态方法。
}
}
TInt CClass::Period( TAny* aPtr )//周期启动函数,在头文件中申明静态函数static。
{
( static_cast<CClass*>( aPtr ) )->DoPeriodTask();
return ETrue;
}
void CClass::DoPeriodTask()//周期真正在做的事情
{
update();//周期类的一些更新操作,在这里实现想要做的
}
void CClass::StopTiem()//终止周期类
{
if ( iPeriodicTimer->IsActive() )
{
iPeriodicTimer->Cancel();
}
}