Ios 使用Flurry Analytics在选项卡中记录花费的时间

Ios 使用Flurry Analytics在选项卡中记录花费的时间,ios,flurry,Ios,Flurry,我目前在我的应用程序中有多个选项卡。我想做的是使用Flurry Analytics记录用户在所选选项卡上花费的时间。 通常,我会在调用viewdideappear时开始录制,并在调用viewdideappeal方法时停止录制 视图显示 [Flurry logEvent:@"Tab_News" withParameters:nil timed:YES]; 看不见 [Flurry endTimedEvent:@"Tab_News" withParameters:nil]; 我的问题是,当在选项卡

我目前在我的应用程序中有多个选项卡。我想做的是使用Flurry Analytics记录用户在所选选项卡上花费的时间。 通常,我会在调用
viewdideappear
时开始录制,并在调用
viewdideappeal
方法时停止录制

视图显示

[Flurry logEvent:@"Tab_News" withParameters:nil timed:YES];
看不见

[Flurry endTimedEvent:@"Tab_News" withParameters:nil];
我的问题是,当在选项卡中播放视频时,
viewdide消失
viewdide出现
方法被调用,即使用户没有实际离开选项卡


请帮助我提出如何避免这种情况的建议。

创建一个名为
videoPlaying
BOOL
来跟踪是否正在播放视频。播放视频时,将其设置为
YES
。在
视图中,仅当(视频播放==否)出现时才消失
endTimedEvent

这同样适用于
viewdideappear
。如果
videoPlaying==YES
logEvent
,然后设置
videoPlaying=NO

大概是这样的:

- (void)viewDidLoad
{
    _videoPlaying = NO;
}

- (void)viewDidAppear
{
    if (_videoPlaying == YES) {
        _videoPlaying = NO;
    } else {
        [Flurry logEvent:@"Tab_News" withParameters:nil timed:YES];
    }
}

- (void)viewDidDisappear
{
   if (_videoPlaying == NO) {
      [Flurry endTimedEvent:@"Tab_News" withParameters:nil];
   }
}

- (void)playVideo
{
    _videoPlaying = YES;
    // Play video
}

如果您的目标是iOS 6,您可以执行以下操作:

- (void)viewDidLoad {
    [super viewDidLoad];
    [Flurry logEvent:@"Tab_News" withParameters:nil timed:YES];
}

- (void)dealloc {
    [Flurry endTimedEvent:@"Tab_News" withParameters:nil];
}
如果在加载此ViewController后立即显示它,则此选项有效