2015-08-04 1 views
1

У меня есть список дел, и я хочу показать количество незавершенных задач в значке значка.Когда обновлять номер значка значка в iOS?

Мой вопрос: Должен ли я обновлять номер значка каждый раз, когда пользователь удаляет/добавляет новую задачу в приложение или обновляет ее только после того, как приложение собирается войти в фоновый режим?

ответ

0

Я почтительно не согласен со всеми здесь:

I generally try and code as if the app or phone could crash at any point. 

Ну, убедитесь, что ваше приложение краш-доказательство, и вы спасете себя бесполезные вызовы методов. Они действительно не будут влиять на производительность, но это просто громоздко и не приятно читать.

Вы хотите, чтобы ваш код был чистым, маленьким и эффективным.

Этот вопрос помогает:

When does the user see the badge? 

Ну, когда он выходит из приложения. Есть ваш ответ. Обновите значок, когда он вот-вот сможет его увидеть.

Вы избегаете немного накладных расходов и, что более важно, работаете, когда это необходимо, а не «все время на всякий случай, когда вы работали неправильно где-то в другом месте». Я настаиваю на этом: не исправьте ошибки, совершив другие ошибки.

В конце концов вы будете отслеживать свой номер значка локально (возможно, NSUserDefaults?) И обновить его в AppDelegate при вводе фона или выходе из приложения :) И вы золотые!

+0

Отличный ответ, хотя я тоже. Фактически я зарегистрировал наблюдателя на applicationWillEnterBackground, поэтому я могу сохранить элементы списка дел из моего ViewController, вместо того, чтобы ссылаться на них как-то в моем AppDelegate. Я сделаю то же самое и для номера значка. Благодаря! –

+0

Если вы сделали даже самое простое приложение, вы обнаружите, что основные API, на которые вы полагаетесь, могут быть нестабильными между новыми выпусками. Пользователь может также принудительно завершить работу в любое время. Надежное отношение на ранней стадии защитит вас от этой ситуации. – GilesDMiddleton

0

Вы можете сделать это в любое время. Это не повлияет на производительность вашего приложения.

-1

Обычно я пытаюсь ввести код, как если бы приложение или телефон могли сбой в любой момент.

Чтобы начать работу, сделайте это как можно скорее, если это важно, чтобы номер был правильным.

Если производительность становится проблемой, задержка действия (и, кроме того, пересчет и обновление при запуске).

-2

Я думаю, что лучший возможный путь - обновить счетчик значков, когда приложение вот-вот войдет в фон, так как нет необходимости обновлять его каждый раз, когда вы добавляете/удаляете задачу.

Таким образом, вы можете вызвать метод обновления значка;

- (void)viewWillDisappear:(BOOL)animated 
+1

В appDelegate, а не в каждом представленииWillDisappear. –

+0

В этом случае вы можете вызвать приложение «- (void) applicationWillResignActive: (UIApplication *)», этот метод вызывается, когда приложение собирается перейти на задний план. – Laky

Смежные вопросы