Sobes.tech
Middle

Mida juhtub UIViewController-iga, kui rakendus minimeeritakse?

sobes.tech AI

Vastus AI-lt

Kui rakendus minimeeritakse, UIViewController, mis praegu kuvatakse kasutajale, läbib järgmised elutsükli staadiumid:

  1. viewWillDisappear: Meetod kutsutakse enne, kui kontrolleri vaade muutub nähtamatuks. Siin saab salvestada UI oleku või tühistada toiminguid.
  2. viewDidDisappear: Meetod kutsutakse pärast seda, kui kontrolleri vaade on täielikult peidetud.
  3. applicationWillResignActive: Meetod kutsutakse AppDelegate-is enne, kui rakendus läheb aktiivsest mitteaktiivsesse olekusse (näiteks kõne saamisel või minimeerimisel).
  4. applicationDidEnterBackground: Meetod kutsutakse AppDelegate-is pärast seda, kui rakendus läks taustale. Selles olekus rakendusel on piiratud aeg ülesannete täitmiseks ning see võib olla peatatud või lõpetatud süsteemi poolt. UIViewController jääb selle ajal mällu, kuid selle vaade ei ole nähtav.

Kui rakendus jääb taustale ja seda ei lõpetata süsteemi poolt, siis järgmisel aktiveerimisel läbib UIViewController järgmised stadia:

  1. applicationWillEnterForeground: Meetod kutsutakse AppDelegate-is enne, kui rakendus naaseb taustast aktiivsesse olekusse.
  2. applicationDidBecomeActive: Meetod kutsutakse AppDelegate-is pärast seda, kui rakendus on uuesti aktiivne.
  3. viewWillAppear: Meetod kutsutakse enne, kui kontrolleri vaade muutub nähtavaks. Siin saab uuendada UI.
  4. viewDidAppear: Meetod kutsutakse pärast seda, kui vaade on muutunud nähtavaks.

Oluline on märkida, et UIViewController objekt ise ei eemaldu mälust rakenduse sulgemisel, kui see ei ole süsteemi poolt selgelt välja laaditud ressursipuuduse tõttu (mis on harv ja sõltub paljudest teguritest). Kontrolleri vaade (view) võib samuti mälust välja laadida (viewWillUnload, viewDidUnload - meetodid eemaldati iOS 6-st), kui see ei ole praegu vajalik ja süsteem vajab mälu. Sellisel juhul luuakse see uuesti järgmisel ligipääsul view-le.