Junior — Middle
როგორ მართავს Android-ში ფრაგმენტის სიცოცხლის ციკლი მოწყობილობის კონფიგურაციის ცვლილებისას?
sobes.tech AI
პასუხი AI-სგან
როდესაც მოწყობილობის კონფიგურაცია იცვლება (მაგალითად, ეკრანის ბრუნვა), აქტივობა და მისი ფრაგმენტები დეფოლტად განადგურდება და ხელახლა იქმნება. ფრაგმენტის სიცოცხლის ციკლი გადის შემდეგ ეტაპებს:
- onPause() → onStop() → onDestroyView() → onDestroy() → onDetach() — ფრაგმენტი განადგურდება აქტივობისთან ერთად.
- აქტივობის ხელახლა შექმნის შემდეგ, ახალი ფრაგმენტის ინстанცია იქმნება და იძახება მეთოდები onAttach() → onCreate() → onCreateView() → onActivityCreated() → onStart() → onResume().
ფრაგმენტის მდგომარეობის შენახვა კონფიგურაციის ცვლილების დროს შესაძლებელია onSaveInstanceState() მეთოდის გამოყენებით მონაცემების შენახვა და მათი აღდგენა onCreate() ან onViewCreated()-ში. ასევე შესაძლებელია გამოიყენოთ setRetainInstance(true), რათა ფრაგმენტი შეინარჩუნოს აქტივობის ხელახლა შექმნის დროს, მაგრამ ეს მეთოდი მოძველებულია და არ არის რეკომენდებული.
მეტი მოქნილი მართვისთვის ხშირად გამოიყენება ViewModel, რომელიც გადარჩება კონფიგურაციის ცვლილებისას და ინახავს მონაცემებს დამოუკიდებლად ფრაგმენტის სიცოცხლის ციკლიდან.