2014-02-25 46 views
2

我的应用程序检查GPS,而我的应用程序不是活动的应用程序,我也在后台使用AVAudioplayer。如何禁用iPhone'应用程序未激活'闪烁横幅

它工作正常,并保留在后台执行任务,但ios7显示这个红色的顶部横幅,当它不是活动的应用程序时,我的应用程序名称会闪烁。

如何禁用此横幅,使用其他压平1行的应用程序令人讨厌?

我知道这可以做,因为我有其他基于GPS的背景应用程序不显示此闪烁的横幅。

编辑 - 于是,我们迅速找到了答案,但解决办法逃避我: 如果我从当程序被激活调用此方法一键收听停止OpenEars pocketsphinxController,当应用程序失去焦点的旗帜消失:

-(void) mystopListening{ 
    NSLog(@"Tried to stop listening"); 
    [pocketsphinxController stopListening]; 
} 

但如果我从我的应用程序委托调用相同的方法(我必须导入我的视图controller.h文件在我的应用程序delegate.h中并添加 - (void)nystopListening;在我的视图controller.h中以下执行正确):

- (void)applicationWillResignActive:(UIApplication *)application{ 
    myViewController * vc = [[myViewController alloc]init]; 
    [vc mystopListening]; 
} 

横幅仍然存在!这有点像ios7已经决定我是一个录音的罪魁祸首之前,我甚至有机会关闭它。或者,我甚至关掉它? 我该如何有效地做到这一点,并在什么事件?

编辑 - 所以事实证明,当从应用程序委托调用“mystopListening”时,我并不真正关闭pocketsphinxController。我知道这一点,因为它从应用程序委托调用时记录'尝试停止监听',但pocketsphinxController没有响应'pocketsphinxDidStopListening'方法。当我在应用程序处于活动状态时从按钮调用“mystopListening”时,PocketsphinxController会调用其'pocketsphinxDidStopListening'方法。

为什么pocketsphinxController无法响应从应用程序委托调用时,我必须做错了吗?

感谢,卡门

+0

你正在录音吗? – sangony

+0

是的,我也使用露馅,对不起,我认为它没有关系。 – Carm100

+0

如果您录制音频,那可能就是红色横幅。停止录音(背景),它应该消失。 – sangony

回答

1

原来我是不是真的叫从我的应用程序的委托原pockectsphinxcontroller实例。

的解决方法是我做了这个问题:

我的应用程序始终有一个计时器的运作,所以在我的应用程序委托在那里,我得到当应用程序进入未激活,回来活跃的通知,我只是设置全局所以我的计时器可以知道应用程序的活动状态然后,我的计时器只使用pockecsphinxcontroller方法停止并开始监听,并且瞧,横幅没有更多,而应用程序不活动。

+0

刚刚看到您的其他评论。你是对的,通过创建一个新的VC,你只需实例化你的班级的第二个副本。您的后续停止方法指向新副本,而不是原来的副本。我曾经总是对此感到困惑!神奇你解决了你自己的问题! +1 – sangony