我目前正在构建一个音乐应用程序,它可以从iOS7控制中心获取控制权。我注意到的一个功能是,如果我按下“播放”控制按钮,我的应用程序将启动,即使它已被杀死。这不是我想要发生的事情,所以如果应用程序在后台启动以防止初始化过程,我在return NO
中添加了didFinishLaunchingWithOptions
。
不幸的是,这并没有改变应用程序仍然启动的事实,并且不会再次调用didFinishLaunchingWithOptions
(并且没有任何内容被初始化)。因为当我不希望它启动时,我无法让应用程序强行自杀,有没有办法阻止应用程序启动?我原本以为返回NO
就可以了,但事实并非如此。
答案 0 :(得分:1)
我找到了这个问题的主要原因之一。它与音频会话和应用程序注册的各种通知/代理有关。在AppDelegate's
applicationWillTerminate:
我必须确保致电:
[[UIApplication sharedApplication] endReceivingRemoteControlEvents];
[[AVAudioSession sharedInstance] setActive:NO withOptions:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:&audioSessionError];
还可以取消注册任何音频通知(中断和路由更改)。
答案 1 :(得分:0)
您希望自己的应用在后台运行吗?
如果没有,您只需添加一个info.plist值即可进入后台,只需在用户点击主页按钮时关闭。