当我的应用不是事件应用时,我的应用会检查 GPS,而且我也在后台使用 AVAudioplayer。
它工作正常,并保持在后台做它的事情,但 ios7 显示这个红色的顶部横幅,当它不是事件的应用程序时,我的应用程序名称会在上面闪烁。
如何禁用此横幅,使用其他被压缩到 1 行的应用程序很烦人?
我知道这可以做到,因为我有其他基于 GPS 的后台应用程序不显示此闪烁横幅。
编辑 - 所以我们很快找到了答案,但解决方案避开了我:
如果我在程序处于事件状态时使用调用此方法的按钮阻止 OpenEars pocketsphinxController 监听,则应用程序失去焦点时横幅会消失:
-(void) mystopListening{
NSLog(@"Tried to stop listening");
[pocketsphinxController stopListening];
}
但是如果我从我的应用程序委托(delegate)中调用相同的方法(我必须在我的应用程序委托(delegate).h 中导入我的 View Controller .h 文件并添加 -(void) nystopListening; 在我的 View Controller .h 中进行以下操作正确执行):
- (void)applicationWillResignActiveUIApplication *)application{
myViewController * vc = [[myViewController alloc]init];
[vc mystopListening];
}
横幅仍然存在!这有点像 ios7 在我有机会关闭它之前就决定我是录音的罪魁祸首。或者,我什至要关闭它吗?
我该如何有效地做到这一点?在什么情况下?
编辑 - 所以当从应用程序委托(delegate)调用“mystopListening”时,我并没有真正关闭pocketsphinxController。我知道这一点,因为它确实在从应用程序委托(delegate)调用时记录了“试图停止监听”,但 pocketsphinxController 没有用它的“pocketsphinxDidStopListening”方法响应。当我在应用程序处于事件状态时从按钮调用“mystopListening”时,PocketsphinxController 确实调用了它的“pocketsphinxDidStopListening”方法。
为什么当从应用程序委托(delegate)调用时,pocketsphinxController 没有响应,我一定是做错了?
谢谢,卡门
Best Answer-推荐答案 strong>
原来我并没有真正从我的应用委托(delegate)中调用原始 pockectsphinxcontroller 实例。
作为解决问题的方法,我这样做了:
我的应用程序总是有一个计时器在运行,所以在我的应用程序委托(delegate)中,我会注意到应用程序何时进入非事件状态并恢复事件状态,我只需设置全局标志,以便我的计时器可以知道应用程序的事件状态。然后我的计时器只是使用 pockecsphinxcontroller 方法来停止和开始收听,瞧,当应用程序不活动时,横幅不再存在。
关于ios - 如何禁用 iPhone 'app not active' 闪烁横幅,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/22003433/
|