Zrobiłem dziś widget dla niemieckiej ligi hokejowej DEL.iOS 8 dziś widget przestaje działać po pewnym czasie
Wczytuję kolejne gry z naszego serwera i wyświetlam je w tableView. Proces ładowania rozpoczyna się w proponowanej metodzie "widgetPerformUpdateWithCompletionHandler". Początkowo ładuję niektóre buforowane dane w "viewWillAppear".
Wszystko działa świetnie!
Ale po jakimś czasie (jeden dzień) widżet przestaje pracy. Po otwarciu centrum powiadomień widżet wygląda normalnie, ale nigdy nie jest aktualizowany ponownie. Muszę usunąć widget z centrum powiadomień i muszę go dodać ponownie. Następnie widget działa przez jeden dzień, a następnie przestaje działać.
Aby zobaczyć, co widżet robi, dodałem prosty biały widok z tekstem statusu nad widokiem tabeli podczas ładowania danych w "widgetPerformUpdateWithCompletionHandler", aby zobaczyć, czy widget robi cokolwiek. Biały widok pojawia się, gdy widget działa. Kiedy nie działa, widok statusu nie pojawia się. Więc myślę, że metoda "widgetPerformUpdateWithCompletionHandler" nie jest wywoływana po tym, jak widget jest aktywny w centrum powiadomień przez jakiś czas.
Nie mam pojęcia, co powoduje, że widget przestaje działać. Jakieś pomysły?
Tak, znalazłem to samo. Próbowałem niektórych rzeczy i zorientowałem się, że gdy żądanie sieci zajmuje trochę czasu (złe warunki sieciowe), widgetPerformUpdateWithCompletionHandler nigdy nie jest wywoływany ponownie. Wydaje mi się, że obsługa zakończenia jest jakoś nieważna. Twoje rozwiązanie będzie działać, ale nie jest to zamierzony sposób. Rozwiązałem problem, ponieważ w ogóle nie korzystałem z widgetu widgetPerformUpdateWithCompletionHandler. Mam nadzieję, że problem zostanie rozwiązany w przyszłości. –
Wywołujesz swoje żądanie sieciowe gdzie indziej, jeśli nie używasz widgetPerformUpdateWithCompletionHandler? –
Tak Wzywam sieć reuqest w viewDidAppear. Widżet nie będzie odświeżany w tle, ale za każdym razem, gdy użytkownik go otworzy. –