如何在5s内只允许log报一次

来源:互联网 发布:my first story 知乎 编辑:程序博客网 时间:2024/06/01 15:29

    由于touch需要埋log来确认是否上报成功,我使用了linux的信号量来做

   size_t x = 1;
size_t virtualkey =1;

void lisa_handler (int sig)
{
   x=1;
}
在threadloop函数里加入

{

   signal(SIGALRM,lisa_handler);  //SIGALRM这个参数最需要注意

}


 void TouchInputMapper::sync(const RawEvent* rawEvent) {
  virtualkey=1;
        if (consumeRawTouches(when, policyFlags)) {
virtualkey=0;
            mCurrentRawPointerData.clear();
        }
if((x==1)&&(virtualkey==1))
{
x=0;
ALOGE("lisa-process");
alarm(5);
}
}

0 0