Возобновление приложения после перехода в фоновый режим - PullRequest
1 голос
/ 19 июня 2011

У меня есть приложение для iphone, предназначенное для Iphone 3G, 3GS и 4G. у меня проблема в том, что поведение отличается от Iphone 3G & 4 (у меня не было возможности протестировать свое приложение на 3GS iphone).

разница:

на iPhone 4:

  1. Я запускаю свое приложение и играю нормально.
  2. Я нажимаю кнопку «Домой» на iphone, поэтому приложение переходит в фоновый режим
  3. при повторном запуске приложения оно продолжается с последнего контекста выполнения.

на iPhone 3G:

  1. Я запускаю свое приложение и играю нормально.
  2. Я нажимаю кнопку iphone home, чтобы приложение перешло в фоновый режим?!
  3. при повторном запуске приложения оно перезапускается с того момента, как оно было запущено впервые.

Это способ одинакового поведения на всех устройствах Iphone?

Или я должен справиться с этим сам?

Ответы [ 3 ]

2 голосов
/ 19 июня 2011

iOS4 добавил фоновый запуск приложений, но не на iPhone 3G.В этих случаях вам нужно будет сохранять и восстанавливать состояние вручную.

Существуют классы, которые вы можете использовать, чтобы помочь вам в этом, например, DTResurrectionKit , который находится на Github.

2 голосов
/ 19 июня 2011

Чтобы дать вам более длинное объяснение:

В iOS 4.0 Apple представила фоновые приложения. С помощью Background приложения, которые потеряли передний план, приостанавливаются, но могут быть повторно активированы до той же точки, в которой они находились, без необходимости для разработчика что-либо делать для этого. По сути, виртуальная машина приложений сохраняется и создается тот же контекст. Однако фоновые приложения могут быть убиты в любое время, когда они работают в фоновом режиме.

Однако Apple оставила несколько старых устройств на этой картинке, хотя они получили 4.0. IPhone 3G и iPod Touch 2. Поколению не были включены фоновые приложения.

Так что, если вы хотите, чтобы на всех устройствах было одинаковое или, по крайней мере, похожее поведение, вам придется развернуть свое собственное. В функции ApplicationWillTerminate: в вашем Appdelegate вам нужно будет сохранить текущую позицию / другую необходимую вам информацию и воссоздать ее оттуда.

1 голос
/ 19 июня 2011

Я думаю, вам не повезло на iPhone 3G, так как фоновые приложения поддерживаются только на устройствах, начиная с iPhone 3GS под управлением iOS 4.x и выше.Конечно, ничто не мешает вам сохранить контекст приложения, когда приложение завершается и возобновляется при перезапуске.

Подтверждение функций iOS 4, поддерживаемых 3G, можно найти здесь:

http://support.apple.com/kb/HT4204

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...