Sobes.tech
Junior — Middle

როგორ ინარჩუნებს ViewModel თავისი სიცოცხლისუნარიანობას Activity-ის განადგურების შემდეგ?

sobes.tech AI

პასუხი AI-სგან

Android-ში ViewModel ინარჩუნებს თავის სიცოცხლისუნარიანობას Activity-ის განადგურების შემდეგაც, რადგან ის დაკავშირებულია კომპონენტის სიცოცხლის ციკლთან არქიტექტურულ დონეზე, არა პირდაპირ Activity-სთან.

როდესაც Activity განადგურდება, მაგალითად, ეკრანის ბრუნვის დროს, სისტემა ქმნის ახალ Activity-ს, მაგრამ ViewModel რჩება და მიეწოდება ახალ Activity-ს იგივე სიცოცხლის ციკლთან ერთად.

ეს მიღწეულია ViewModelProvider კლასის საშუალებით, რომელიც ინახავს ViewModel-ის მაგალითს სპეციალურ საცავში, რომელიც დაკავშირებულია მფლობელის (Activity ან Fragment) სიცოცხლის ციკლთან. მანამ, სანამ მფლობელი ცოცხალია, ViewModel ინახება.

ამ გზით, ViewModel საშუალებას აძლევს შეინახოს მდგომარეობა და მონაცემები Activity-ის ხელახლა შექმნის შორის, გარეშე საჭიროების მათ ხელით შენახვის onSaveInstanceState-ის საშუალებით.

მაგალითი:

val viewModel = ViewModelProvider(this).get(MyViewModel::class.java)

აქ, this არის Activity ან Fragment, და ViewModel იცოცხლებს მანამ, სანამ ეს კომპონენტი ცოცხალია, even if Activity-ი ხელახლა შეიქმნება.