Siklo ng Buhay sa Mobile Development: ano ito, anong mga yugto at paano ito gumagana

May-akda: IT Sectr Nai-publish: 2026-03-02 Oras ng pagbabasa: 9 min

Ang siklo ng buhay ng mobile app ay tumutukoy kung paano kumilos ang app kapag inilunsad, pinaliit, ibinalik mula sa background, at isinara. Sa artikulong ito, tatalakayin natin ang App Lifecycle (iOS), Activity Lifecycle (Android), Fragment Lifecycle, ViewController Lifecycle at LifecycleOwner. Ang pag-unawa sa mga prosesong ito ay kritikal para maiwasan ang pagtagas ng memorya, pagkawala ng data, at hindi tamang pag-uugali ng app. Higit pang detalye sa opisyal na dokumentasyon ng Android Activity Lifecycle.

Mga Pangunahing Punto

  • Activity Lifecycle (Android) ay may 7 pamamaraan: onCreate → onStart → onResume → onPause → onStop → onDestroy + onRestart
  • ViewController Lifecycle (iOS) ay tinatawag sa pagkakasunod-sunod: viewDidLoad → viewWillAppear → viewDidAppear → viewWillDisappear → viewDidDisappear
  • iOS App Lifecycle ay may 5 estado: Not Running, Inactive, Active, Background, Suspended
  • Fragment Lifecycle ay nakatali sa Activity ngunit may sariling pamamaraan: onAttach, onCreateView, onViewCreated
  • LifecycleOwner (Android) ay nagpapahintulot sa pag-subscribe sa mga kaganapan ng siklo ng buhay sa pamamagitan ng LifecycleObserver

Siklo ng Buhay ng App (App Lifecycle)

Bago sumabak sa siklo ng buhay ng mga indibidwal na screen, mahalagang maunawaan ang siklo ng buhay ng buong aplikasyon. Sa iOS, ang app ay dumadaan sa limang estado: Not Running (hindi tumatakbo), Inactive (sa background, hindi tumatanggap ng mga kaganapan), Active (aktibo), Background (sa background, ang code ay tumatakbo) at Suspended (sa background, ang code ay naka-pause). Ang mga estadong ito ay pinamamahalaan sa AppDelegate sa pamamagitan ng mga pamamaraang applicationDidFinishLaunching, applicationDidBecomeActive, applicationWillResignActive, applicationDidEnterBackground at applicationWillTerminate.

Sa Android, ang katumbas ay ang Application Lifecycle, na sinusubaybayan sa pamamagitan ng interface na Application.ActivityLifecycleCallbacks. Gayunpaman, mas nakatuon ang Android sa siklo ng buhay ng isang Activity — isang indibidwal na screen ng app. Ito ay dahil ang isang Android app ay maaaring binubuo ng maraming Activities, bawat isa ay may sariling siklo.

Ang makabagong diskarte sa Android ay ang paggamit ng ProcessLifecycleOwner mula sa library na lifecycle-process. Pinapayagan nito ang pagsubaybay sa estado ng buong proseso nang hindi nakatali sa isang partikular na Activity. Sa iOS, ang UISceneDelegate (mula noong iOS 13) o AppDelegate ay ginagamit para sa pagsubaybay sa estado ng app. Ang SceneDelegate ay humahawak ng maraming window (multiwindow) sa iPad. Ang pag-unawa sa App Lifecycle ay lalong mahalaga para sa IT Sectr kapag nagde-develop ng mga app na may background synchronization, streaming, at mga tawag sa VoIP.

Activity Lifecycle sa Android

Activity ay ang pangunahing bahagi ng isang Android app na kumakatawan sa isang screen. Ang Activity ay may malinaw na tinukoy na siklo ng buhay na pinamamahalaan ng operating system bilang tugon sa mga aksyon ng user at mga kaganapan sa system (pag-ikot ng screen, papasok na tawag, mababang memorya).

PamamaraanPaglalarawanAno ang Gagawin
onCreateTinatawag nang isang beses kapag ginawa ang ActivityPagsisimula ng UI, findViewById, pag-setup ng ViewModel
onStartNaging visible ang ActivitySimulan ang mga animation, irehistro ang BroadCastReceiver
onResumeNakakuha ng input focus ang ActivitySimulan ang camera, sensor, animation
onPauseNawala ang focus ng Activity (bahagyang visible)I-save ang mga draft, ihinto ang mga animation
onStopHindi visible ang ActivityPalayain ang mga resource, ihinto ang mga update
onDestroyNasira ang ActivityLinisin ang lahat ng reference, mag-unsubscribe mula sa LiveData
onRestartTinatawag bago ang onStart pagkatapos ng onStopMuling pagsisimula

Mahalaga: Ang onSaveInstanceState ay tinatawag bago ang onStop upang i-save ang pansamantalang estado. Ang pagpapanumbalik ay nangyayari sa onCreate sa pamamagitan ng Bundle savedInstanceState o sa pamamagitan ng SavedStateHandle sa ViewModel. Kung walang tamang paghawak ng siklo ng buhay, mawawala ng app ang lahat ng hindi naka-save na data kapag umikot ang screen.

kotlin
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }
    override fun onSaveInstanceState(outState: Bundle) {
        super.onSaveInstanceState(outState)
        outState.putString("draft", draftText)
    }
    override fun onDestroy() {
        super.onDestroy()
        // Отписка от всех подписок
    }
}

Activity Lifecycle sa Jetpack Compose

Sa Jetpack Compose, ang siklo ng buhay ng Activity ay nananatiling hindi nagbabago, ngunit nagbibigay ang Compose ng mga karagdagang tool: Komposisyong may kamalayan sa siklo ng buhay sa pamamagitan ng LifecycleOwner, mga epektong LifecycleEventEffect at DisposableEffect para sa awtomatikong paglilinis ng resource kapag nasira.

Fragment Lifecycle nang Detalye

Fragment sa Android ay nabubuhay sa loob ng isang Activity at may sariling siklo ng buhay, na bahagyang nag-o-overlap sa Activity ngunit nagdaragdag ng mga bagong pamamaraan. Ang mga Fragment ay maaaring idagdag, palitan, alisin nang hindi sinisira ang Activity, na ginagawang mas flexible ngunit mas kumplikado.

Mga pangunahing pamamaraan ng Fragment Lifecycle: onAttach — Fragment nakakabit sa Activity (unang tawag); onCreate — pagsisimula ng data; onCreateView — paggawa ng View; onViewCreated — View nagawa, maaaring i-configure ang UI; onStart — Fragment visible; onResume — Fragment nasa focus; onPause — Fragment nawawala ang focus; onStop — Fragment hindi visible; onDestroyView — View nasira; onDestroy — Fragment nasira; onDetach — Fragment naalis mula sa Activity.

Pangunahing pagkakaiba mula sa Activity: Ang onCreateView at onDestroyView ay maaaring tawagin nang maraming beses (hal., kapag nagpapalit ng TabLayout), habang ang onCreate ay tinatawag nang isang beses. Alinsunod dito, ang pagsisimula ng View ay dapat gawin sa onViewCreated, hindi sa onCreateView. Ang mga resource na nauugnay sa View (tulad ng mga adaptor ng RecyclerView) ay dapat linisin sa onDestroyView.

ViewController Lifecycle sa iOS

UIViewController ay ang base class para sa pamamahala ng mga screen sa iOS. Ang siklo ng buhay nito ay binubuo ng isang pagkakasunod-sunod ng mga pamamaraan na awtomatikong tinatawag ng UIKit. Ang pag-unawa sa siklong ito ay kritikal para sa tamang pagsisimula ng UI, pamamahala ng data, at paghawak ng memorya.

PamamaraanKailan TinatawagKaraniwang Paggamit
loadViewKapag ni-load ng View Controller ang kanyang hierarchy ng ViewCustom na pagsisimula nang walang storyboard
viewDidLoadPagkatapos ma-load ang View sa memorya (isang beses)Pag-setup ng UI, pag-load ng paunang data
viewWillAppearBago lumitaw ang View sa screenI-update ang data, mag-subscribe sa mga notification
viewDidAppearPagkatapos lumitaw ang View sa screenSimulan ang mga animation, simulan ang mga animation ng pagsubaybay
viewWillDisappearBago mawala ang View sa screenI-save ang estado, mag-unsubscribe sa mga notification
viewDidDisappearPagkatapos mawala ang View sa screenIhinto ang mga animation, palayain ang mga resource
deallocKapag nasira ang View ControllerPalayain ang lahat ng resource

Mahalaga: Ang viewDidLoad ay tinatawag lamang nang isang beses sa buhay ng isang View Controller. Upang i-update ang data sa bawat paglitaw, gamitin ang viewWillAppear. Kung mag-subscribe ka sa NotificationCenter sa viewWillAppear, siguraduhing mag-unsubscribe sa viewDidDisappear upang maiwasan ang pagtagas ng memorya.

SwiftUI Lifecycle

Pinamamahalaan ng SwiftUI ang siklo ng buhay ng mga View sa pamamagitan ng mga istruktura ng View. Sa halip na mga pamamaraan ng callback, gumagamit ang SwiftUI ng mga modifier na onAppear at onDisappear. Para sa mga pandaigdigang estado ng app, ginagamit ang App Lifecycle sa pamamagitan ng mga protokol ng App at Scene. Awtomatikong pinamamahalaan ng SwiftUI ang paggawa at pagkasira ng mga View batay sa estado, na nagpapasimple sa pag-develop ngunit nangangailangan ng pag-unawa sa pagkakakilanlan at habang-buhay ng View.

swift
struct ContentView: View {
    var body: some View {
        Text("Hello")
            .onAppear {
                print("View появилась")
            }
            .onDisappear {
                print("View исчезла")
            }
    }
}

LifecycleOwner at LifecycleObserver sa Android

LifecycleOwner ay isang interface mula sa Android Architecture Components na nagmamarka ng isang bagay na may siklo ng buhay (Activity, Fragment). LifecycleObserver ay isang interface na nagpapahintulot sa isang bagay na mag-subscribe sa mga kaganapan ng LifecycleOwner. Magkasama silang bumubuo ng pundasyon ng reaktibong pamamahala ng siklo ng buhay sa modernong pag-develop ng Android.

Sa halip na tahasang tumawag ng mga pamamaraan sa onStart/onStop, inirerekomenda na gamitin ang DefaultLifecycleObserver (kapalit ng hindi na ginagamit na LifecycleObserver na may mga anotasyong @OnLifecycleEvent). Ito ang diskarte na itinaguyod ng Google para sa ViewModel at iba pang mga bahagi na kailangang tumugon sa siklo ng buhay nang walang direktang mga reference sa Activity o Fragment.

kotlin
class MyObserver : DefaultLifecycleObserver {
    override fun onStart(owner: LifecycleOwner) {
        // Подписка на обновления
    }
    override fun onStop(owner: LifecycleOwner) {
        // Отписка
    }
}

Sa IT Sectr, ginagamit namin ang LifecycleOwner sa lahat ng proyekto sa Android. Ang ViewModel ay nag-subscribe sa LifecycleOwner ng Activity sa pamamagitan ng viewModelScope at lifecycleScope, na ginagarantiyahan ang awtomatikong pagkansela ng mga coroutine kapag ang Activity ay nasira. Ito ay pumipigil sa pagtagas ng memorya at ginagawang mas malinis at mas ligtas ang code.

Mga Madalas Itanong

Anong mga estado ang pinagdadaanan ng Activity sa Android?

Ang Activity ay dumadaan sa anim na estado: Created (onCreate), Started (onStart), Resumed (onResume), Paused (onPause), Stopped (onStop), Destroyed (onDestroy).

Sa anong pagkakasunod-sunod tinatawag ang mga pamamaraan ng ViewController Lifecycle sa iOS?

Pagkakasunod-sunod: loadView → viewDidLoad → viewWillAppear → viewDidAppear → viewWillDisappear → viewDidDisappear. Ang viewDidLoad ay tinatawag nang isang beses.

Ano ang LifecycleOwner sa Android?

LifecycleOwner ay isang bahagi ng Android Architecture Components na nagmamay-ari ng siklo ng buhay ng isang Activity o Fragment. Pinapayagan ang pag-subscribe sa mga kaganapan sa pamamagitan ng LifecycleObserver.

Anong mga estado mayroon ang App Lifecycle sa iOS?

Ang iOS app ay dumadaan sa limang estado: Not Running, Inactive, Active, Background, Suspended. Ang mga transisyon ay pinamamahalaan sa pamamagitan ng UIApplicationDelegate.

Ano ang Saved State sa Android?

Saved State ay ang mekanismo ng Android para mapanatili ang estado ng Activity/Fragment sa pag-ikot ng screen o muling paggawa ng proseso. Gumagamit ito ng onSaveInstanceState at SavedStateHandle.

Buod

  • Activity Lifecycle sa Android (onCreate → onDestroy) — ang pundasyon ng pamamahala ng estado ng screen
  • iOS ViewController Lifecycle (viewDidLoad → viewDidDisappear) — ang susi sa tamang operasyon ng UIKit
  • Fragment Lifecycle ay mas kumplikado kaysa sa Activity dahil sa onAttach/onDetach at onCreateView/onDestroyView
  • LifecycleOwner (Android) ay nagpapahintulot ng reaktibong pag-subscribe sa mga kaganapan nang walang pagtagas ng memorya
  • App Lifecycle ay namamahala sa estado ng buong aplikasyon (Active, Background, Suspended)
  • Ang SwiftUI ay gumagamit ng onAppear at onDisappear sa halip na mga tradisyonal na pamamaraan ng ViewController
  • Ang tamang paghawak ng siklo ng buhay ay pumipigil sa hanggang 80% ng mga karaniwang pag-crash ng mobile app

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto