როგორ უზრუნველვყოთ სისტემის მიმდინარე მდგომარეობის შენარჩუნება კონფიგურაციის ცვლილებისას?
sobes.tech AI
პასუხი AI-სგან
Android-ში, კონფიგურაციის ცვლილების დროს (მაგალითად, ეკრანის ბრუნვისას) სისტემის მიმდინარე მდგომარეობის შენახვა ხდება Activity ან Fragment-ის მდგომარეობის შენახვის მექანიზმის გამოყენებით.
ძირითადი მეთოდები:
-
onSaveInstanceState(Bundle outState) — მეთოდი, რომელშიც შესაძლებელია საჭირო მონაცემების შენახვა Bundle ობიექტში. ეს მონაცემები ხელმისაწვდომი იქნება Activity-ის ხელახლა შექმნისას onCreate ან onRestoreInstanceState მეთოდებში.
-
ViewModel — არქიტექტურული კომპონენტებიდან ერთია, რომელიც ინახავს მონაცემებს კონფიგურაციის ცვლილების დროს და არ იქმნება ხელახლა ერთად Activity-სთან.
-
UI კომპონენტების მდგომარეობის შენახვა — ბევრი სტანდარტული ვიჯეტი ავტომატურად ინახავს თავის მდგომარეობას, თუ მას აქვს უნიკალური იდენტიფიკატორი.
მაგალითი: გამრიცხველის მდგომარეობის შენახვა:
class MainActivity : AppCompatActivity() {
private var counter = 0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
counter = savedInstanceState?.getInt("counter_key") ?: 0
// განაახლეთ UI მიმდინარე counter მნიშვნელობით
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
outState.putInt("counter_key", counter)
}
}
ამ გზით, კონფიგურაციის ცვლილების დროს მონაცემები არ დაიკარგება და მომხმარებელი იგივე ინტერფეისი და მდგომარეობა იხილავს.