Как бесшумно запустить приложение в фоновом режиме в iOS 6.x

Мы хотим запустить приложение в iPhone без вывода сообщений на передний план. В iOS 5.x мы достигаем этой цели с помощью этого кода:

    [(SBApplication*)app setDisplaySetting:0x4 flag:NO];
    [(SBDisplayStack*)displayStack pushDisplay:app];
    [(SBDisplayStack*)displayStack popDisplay:app];

Но в iOS 6.x больше нет SBDisplayStack. Я сделал некоторый поиск, но не нашел никаких ответов. Кто-то говорит, что SBWorkSpace заменяет SBDisplayStack в iOS 6.x. Мы используем SBAppToAppWorkspaceTransaction для реализации, но всегда выводим приложение на передний план, что не достигает нашей цели.

Кто-нибудь может мне помочь? Спасибо!


person Cabrite11    schedule 21.02.2013    source источник
comment
есть ли ваше приложение в AppStore? (с версией iOS5.x)   -  person Nikita P    schedule 21.02.2013
comment
@NikitaP: Приложение не может быть в App Store, так как класс SBDisplayStack является закрытым.   -  person zoul    schedule 21.02.2013
comment
Это приложение для джейлбрейка   -  person Cabrite11    schedule 21.02.2013


Ответы (1)


Вы можете использовать функцию SBSLaunchApplicationWithIdentifier() из частной структуры SpringBoardServices. Он принимает аргумент suspended:

SBSLaunchApplicationWithIdentifier(CFSTR("com.company.app"), TRUE);

Для этого вам также потребуется право com.apple.springboard.launchapplications.

person Community    schedule 21.02.2013
comment
: Я пробовал так, как ты сказал. Мне нужно, чтобы приложение работало в фоновом режиме, поэтому я устанавливаю приостановлено = НЕТ, и этот параметр снова переводит приложение на передний план. любая другая идея? - person Cabrite11; 21.02.2013
comment
@Cabrite11 Фон == приостановлен. Я не случайно написал TRUE, а не FALSE. Не будьте невежественны (в качестве альтернативы повторите школьную математику). - person ; 21.02.2013
comment
Может быть, по вашему мнению Фон == приостановлен. Но поскольку я знаю, что есть приложения, которые входят в фоновый режим без приостановки (например, которые реализуются (UIBackgroundTaskIdentifier)beginBackgroundTaskWithExpirationHandler:(void(^)(void))handler NS_AVAILABLE_IOS(4_0);) Возможно, вам следует пересмотреть свою математику в начальной школе - person Cabrite11; 21.02.2013
comment
@ Cabrite11 1. Они не входят в фоновый режим без приостановки, 2. жалуются только после попытки соответствующего кода. - person ; 21.02.2013