Potrzebuję zapisać niektóre dane w mojej aplikacji, gdy aplikacja zostanie zakończona, a nawet jeśli ulegnie awarii. Wiem, że applicationWillTerminate
jest wywoływana, gdy aplikacja kończy, ale nie jestem pewien, która metoda jest wywoływana, gdy aplikacja ulega awarii.
Czy ktoś może mi w tym pomóc?Czy istnieje jakaś metoda w appDelegate, która jest wywoływana, gdy aplikacja ulega awarii?
Odpowiedz
Można dodać własny wyjątek obsługi, aby złapać błąd.
Najpierw trzeba zdefiniować metodę wyjątek:
powiedz aplikację do korzystania z obsługi wyjątku:
- (void)applicationDidFinishLaunching:(UIApplication *)application {
NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler);
// The rest if you code ....
}
nie ma sposobu, aby aplikacja zapisać dane na temat awarii, ponieważ oszczędzanie może być przyczyną awarii!
Czy mogę zapisać aktualny czas (czas awarii aplikacji) w pliku NSUserDefaults w metodzie uncaughtExceptionHandler? Czy to najlepsza praktyka? – Bhushan
Nie sądzę, że możesz, ale możesz napisać swój błąd do piaskownicy aplikacji. Tak działają biblioteki takie jak crashlytics, hockyapp i sorte. – rckoenes
dzięki za szybką odpowiedź. Czy istnieje inny sposób na zaoszczędzenie czasu podczas awarii aplikacji? Oszczędzam czas w metodzie ApplicationTerminate, ale nie wywołuję, gdy aplikacja ulega awarii. W rzeczywistości moja aplikacja jest w taki sposób, że potrzebuję czasu wylogowania ostatniej sesji do dalszego przetwarzania. Każda pomoc, którą możesz zapewnić, byłaby doceniona. – Bhushan
Nie, nie można się dowiedzieć, kiedy aplikacja się zawiesi.
- 1. Jaka metoda jest wywoływana, gdy wybrano QGraphicsItem?
- 2. admob: aplikacja ulega awarii na Androidzie 3.2
- 3. Aplikacja ulega awarii po uruchomieniu NavigationController!
- 4. Aplikacja ulega awarii podczas pracy z instrumentami
- 5. Kiedy jest wywoływana metoda finalizacji w jednostce?
- 6. Angular2: Aplikacja ulega awarii/przestaje reagować po napotkaniu wyjątku/błędu
- 7. Aplikacja ulega awarii po przywróceniu z tła po długim czasie.
- 8. Czy istnieje sposób ogólny do wywołania innej metody, gdy metoda jest wywoływana w C#
- 9. DROP DATABASE ulega awarii
- 10. Aplikacja ulega awarii podczas przechowywania NSArray w NSUserDefaults
- 11. Aplikacja ulega awarii i uruchamia się ponownie telefon
- 12. Aplikacja ulega awarii po zakończeniu wykonywania pobierania w tleHandler
- 13. Kiedy wywoływana jest metoda layoutSubviews?
- 14. vector.push_back() ulega awarii
- 15. iOS5 Storyboard UIViewController, która metoda init jest wywoływana przez storyboard?
- 16. UIImagePickerController ulega awarii podczas szybkiego przewijania, wolniej niż aplikacja zdjęć
- 17. Dlaczego moja aplikacja ulega awarii podczas szybkiego przełączania fragmentów?
- 18. Metoda wirtualna nie jest wywoływana
- 19. Dlaczego moja aplikacja ulega awarii przy włączonym SIGSEGV?
- 20. Aplikacja ulega awarii podczas próby związania izolowanego obrazu pamięci
- 21. aplikacja działa jako debugowanie, ale ulega awarii jako wydanie
- 22. Android - aplikacja ulega awarii na urządzeniach Pre-Lollipop
- 23. WKWebView ulega awarii na deinit
- 24. Kiedy wywoływana jest metoda onSizeChanged()?
- 25. Jak poprawić jakość danych debugowania, gdy moja aplikacja ulega awarii na wolności?
- 26. UITextField ulega awarii po dotknięciu
- 27. Metoda onHandleIntent() nie jest wywoływana
- 28. JavaFX ulega awarii X Server
- 29. Analiza składniowa saveInBackgroundWithBlock ulega awarii na iOS
- 30. Czy istnieje metoda RX, która łączy mapę i filtr?
powinieneś napisać aplikację, która się nie psuje, co rozwiązuje twój problem. –
Bardzo dobra uwaga Vince. Ale nigdy nie wiadomo, co może spowodować awarię aplikacji. Radzenie sobie z tym wcześniej jest lepsze niż zrobienie tego później. – Nitish