我的应用中有一个动画正弦波,需要在用户点击主页按钮或锁定手机时关闭(关闭屏幕)。一旦用户将应用程序带回前台,就会再次触发正弦波动画。这工作正常,直到我意识到麦克风访问权限弹出时发生。因此麦克风访问弹出,导致我的应用程序进入后台并关闭动画,但应用程序仍然可见。我可以通过任何方式知道麦克风访问弹出窗口正在发生,所以我可以发表某种if
声明吗?
-(void) appDidEnterForeground:(NSNotification *)notification
{
if( viewIsUp == NO)
{
[self.sineWave.layer removeAllAnimations];
}
else
{
[self.sineWave animateWave];
}
}
-(void) appDidEnterBackground:(NSNotification *)notification
{
if(viewIsUp)
{
[self.sineWave.layer removeAllAnimations];
}
}
答案 0 :(得分:0)
我不小心将UIApplicationWillResignActiveNotification
设置为通知appDidEnterBackground
。当显示麦克风访问弹出窗口时,唯一将被调用的通知是UIApplicationWillResignActiveNotification
。因此,当点击主页按钮或屏幕被锁定时,我会在调用UIApplicationDidEnterBackgroundNotification
时删除动画,当显示麦克风访问弹出窗口时,我会在UIApplicationWillResignActiveNotification
获取时保留动画调用。工作得很好。希望这有助于某人。