UILocalNotification и alertLaunchImage - PullRequest
       0

UILocalNotification и alertLaunchImage

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

Хммм ……

Вопрос о UILocalNotification и уведомлении о предупреждении оповещения.

Мое приложение использует UILocalNotifiaction (s), чтобы привлечь внимание пользователей.Как обычно, предупреждение представлено кнопками «Действие» и «Закрыть».Когда пользователь нажимает «Действие», отображается изображение, указанное в alertLaunchImage.AlertLaunchImage - это скриншот одного из представлений приложения, которое отображается после инициализации данных при нормальном запуске.

Вот 3 случая, когда уведомление доставляется:

  1. Приложение работает на переднем плане - нет предупреждений, нет launchImage, как показано на рисунке.Нет проблем.

  2. Если мое приложение работает в фоновом режиме, когда уведомление доставлено, launchImage работает как чудо.Нет проблем.LaunchImage без данных, связанных с приложением, отображается, а затем приложение заполняет данные.Эта часть работает без проблем.

  3. Однако, если приложение не запускается при доставке уведомления, последовательность сбивает с толку - или я что-то пропустил.Приложение запускается и показывает alertLaunchImage вместо изображения по умолчанию.Затем он проходит через несколько других экранов (как часть инициализации и обработки данных), прежде чем будет показан фактический экран (активная версия alertLaunchImage).

Это может очень запутать пользователя.Мой вопрос приходит сюда.Как этого избежать?

R / - Сэм.!

An intermediate view alertLaunchImage

Ответы [ 2 ]

0 голосов
/ 24 июня 2012

Если ваше приложение запускается с помощью локального уведомления, вы получите это уведомление в options, переданном -application:didFinishLaunchingWithOptions:.Исходя из этого, вы можете написать код, который перемещается на нужный экран без анимации.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{  
    UILocalNotification *localNotification = [launchOptions valueForKey:UIApplicationLaunchOptionsLocalNotificationKey];
    if (localNotification != nil) {
        // startup by local notification
    } else {
        // normal startup
    }
}
0 голосов
/ 20 июня 2011

вы можете попробовать очистить настройки просмотра предупреждений в applicationWillTerminate:

Согласно UIApplicationDelegate ссылка applicationWillTerminate: :

"Этот метод сообщает вашему приложению что это должно быть прекращено и полностью очищен от памяти. Вы следует использовать этот метод для выполнения любого окончательные задачи по очистке для вашего приложение, такое как освобождение общего ресурсы, сохранение пользовательских данных, аннулирование таймеров и сохранение достаточно состояния приложения для восстановить ваши приложения интерфейс при перезапуске "

НТН,

Одед

...