iOS:阻止应用启动到后台

时间:2013-12-16 18:42:19

标签: ios iphone objective-c ios7 avplayer

我目前正在构建一个音乐应用程序,它可以从iOS7控制中心获取控制权。我注意到的一个功能是,如果我按下“播放”控制按钮,我的应用程序将启动,即使它已被杀死。这不是我想要发生的事情,所以如果应用程序在后台启动以防止初始化过程,我在return NO中添加了didFinishLaunchingWithOptions

不幸的是,这并没有改变应用程序仍然启动的事实,并且不会再次调用didFinishLaunchingWithOptions(并且没有任何内容被初始化)。因为当我不希望它启动时,我无法让应用程序强行自杀,有没有办法阻止应用程序启动?我原本以为返回NO就可以了,但事实并非如此。

2 个答案:

答案 0 :(得分:1)

我找到了这个问题的主要原因之一。它与音频会话和应用程序注册的各种通知/代理有关。在AppDelegate's applicationWillTerminate:我必须确保致电:

[[UIApplication sharedApplication] endReceivingRemoteControlEvents];

[[AVAudioSession sharedInstance] setActive:NO withOptions:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:&audioSessionError];

还可以取消注册任何音频通知(中断和路由更改)。

答案 1 :(得分:0)

您希望自己的应用在后台运行吗?

如果没有,您只需添加一个info.plist值即可进入后台,只需在用户点击主页按钮时关闭。