Activity — ano ito, screen ng app sa Android at Lifecycle nito

May-akda: IT Sectr Nai-publish: 2026-02-22 Oras ng pagbabasa: 7 min

Activity — pangunahing component ng Android app na kumakatawan sa isang screen na may user interface. Pinamamahalaan ng system ang mga screen sa pamamagitan ng mahigpit na lifecycle — mga callback na onCreate, onResume at onDestroy. Bawat Activity ay idineklara sa AndroidManifest.xml at inilulunsad sa pamamagitan ng Intent. Magbasa pa tungkol sa kasaysayan ng Android sa opisyal na dokumentasyon ng Google.

Mga pangunahing punto

  • Activity — component ng Android na kumakatawan sa isang screen na may UI. Pinamamahalaan sa pamamagitan ng Lifecycle
  • Lifecycle ay may kasamang 6 na callback: onCreate, onStart, onResume, onPause, onStop, onDestroy
  • Intent — mekanismo para ilunsad ang Activity at maglipat ng data sa pagitan ng mga screen
  • Manifest — sapilitang pagpaparehistro ng bawat Activity sa AndroidManifest.xml
  • ViewModel — component ng Jetpack para sa pag-iimbak ng data kapag muling ginawa ang Activity

Ano ang Activity?

Activity — pangunahing component ng Android app na nagbibigay ng window para sa pakikipag-ugnayan sa user. Bawat Activity ay namamahala ng hiwalay na screen: listahan ng gawain, form ng pag-login, pagtingin ng larawan. Gumagawa ang Android system ng Activity kapag hiniling at sinisira ito kapag kailangan ang memory para sa ibang mga app.

Unang lumitaw ang Activity sa Android 1.0 (2008) at nananatiling pangunahing bloke ng gusali ng interface. Ayon sa Google (2026), 98% ng mga app sa Google Play ay naglalaman ng kahit isang Activity. Sa modernong arkitektura, inirerekomenda ng Google ang isang Activity na may maraming Fragment, ngunit ang klasikong multi-screen na app ay nananatiling karaniwang kasanayan.

Activity stack (back stack) — stack ng mga gawain na nag-iimbak ng kasaysayan ng nabigasyon. Kapag pinindot ng user ang „Bumalik“, ang kasalukuyang Activity ay sinisira at ang nauna ay naibabalik. Awtomatikong pinamamahalaan ng system ang stack, ngunit makokontrol ng developer ang pag-uugali sa pamamagitan ng launchMode at mga flag ng Intent.

Lifecycle ng Activity

Ang lifecycle ng Activity — ang hanay ng mga estado at callback na dinadaanan ng screen mula sa paglikha hanggang sa pagkasira. Ang pag-unawa sa Lifecycle ay kritikal: ang maling pagtatrabaho sa mga estado ay humahantong sa pagtagas ng memory, pagkawala ng data, at pag-crash ng app.

Tinatawag ng Android system ang mga callback sa mahigpit na pagkakasunud-sunod. Ang developer ay nag-o-override ng mga kinakailangang pamamaraan upang magpasimula ng mga mapagkukunan, mag-save ng data, at magpakawala ng memory. Bawat callback ay may katapat: onCreate ↔ onDestroy, onStart ↔ onStop, onResume ↔ onPause.

CallbackLayuninAksyon ng developer
onCreateTinatawag kapag ginawa ang ActivityPagsisimula ng UI, pag-subscribe sa ViewModel
onStartNagiging nakikita ang ActivityPagsisimula ng mga animation, camera, GPS
onResumeNakukuha ng Activity ang focus ng inputPagpapatuloy ng video, timer
onPauseNawawalan ng focus ang ActivityPag-save ng mga draft, paghinto ng animation
onStopNakatago ang Activity ng ibang screenPagpapakawala ng mabibigat na mapagkukunan
onDestroySinisira ang ActivityPaglilinis ng mga subscription, Closeable

Mga estado ng Activity

Apat na estado ng Activity ang nakikilala: Running (aktibo ang onResume), Paused (nakikita ngunit walang focus), Stopped (hindi nakikita), Destroyed (nawasak). Maaaring patayin ng system ang Activity sa estadong Stopped kapag kulang ang memory — dapat i-save ang data sa onSaveInstanceState.

Mga pamamaraan ng lifecycle: onCreate, onStart, onResume

Tingnan natin ang tatlong pangunahing pamamaraan ng lifecycle ng Activity na may halimbawa sa Kotlin. onCreate — entry point, tinatawag nang isang beses. Dito nagaganap ang pagbubuklod ng layout sa pamamagitan ng setContentView, pagsisimula ng RecyclerView, pag-subscribe sa LiveData. onStart — nagiging nakikita ang Activity para sa user. onResume — nakukuha ng Activity ang focus at handa nang makipag-ugnayan.

kotlin
class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val recyclerView = findViewById<RecyclerView>(R.id.rv_items)
        recyclerView.layoutManager = LinearLayoutManager(this)
        loadItems()
    }

    override fun onStart() {
        super.onStart()
        startLocationUpdates()
    }

    override fun onResume() {
        super.onResume()
        resumeVideoPlayer()
    }
}

Sa halimbawa, sinisimulan ng onCreate ang RecyclerView at naglo-load ng data. Sinisimulan ng onStart ang pag-update ng geolocation — isang mapagkukunan na dapat gumana lamang kapag nakikita ang screen. Ipinagpapatuloy ng onResume ang video na huminto sa onPause. Ang ganitong paghihiwalay ay pumipigil sa hindi kinakailangang trabaho sa background.

Pagdedeklara ng Activity sa AndroidManifest.xml

Bawat Activity ay dapat ideklara sa file na AndroidManifest.xml. Kung walang pagpaparehistro, hindi mahahanap ng system ang screen at magtatapon ng exception na ActivityNotFoundException. Sa manifest ay tinutukoy ang pangalan ng klase, tema, oryentasyon, launchMode at mga filter ng Intent.

xml
<application
    android:allowBackup="true"
    android:label="@string/app_name"
    android:theme="@style/Theme.MyApp">

    <activity
        android:name=".MainActivity"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity
        android:name=".DetailActivity"
        android:parentActivityName=".MainActivity" />
</application>

Ang flag na exported ay tumutukoy kung maaaring ilunsad ng ibang mga app ang Activity. Para sa pangunahing screen exported=true, para sa mga panloob na screen — false. Ang attribute na parentActivityName ay nagpapagana ng karaniwang nabigasyong „Paakyat“ (Up Navigation).

Pagpapalunsad ng Activity sa pamamagitan ng Intent

Intent — isang bagay na naglalarawan ng aksyon na gagawin. Sa konteksto ng Activity, ginagamit ang Intent upang ilunsad ang ibang screen na may paglipat ng data. Ang Intent ay maaaring tahasan (tumuturo sa isang tiyak na klase) at hindi tahasan (tumuturo sa isang aksyon, pipili ang system ng angkop na component).

kotlin
// Tahasang Intent — paglulunsad ng DetailActivity na may data
val intent = Intent(this, DetailActivity::class.java).apply {
    putExtra("item_id", itemId)
    putExtra("item_name", itemName)
}
startActivity(intent)

// Pagtanggap ng data sa DetailActivity
val itemId = intent.getLongExtra("item_id", 0L)
val itemName = intent.getStringExtra("item_name") ?: ""

Para makatanggap ng resulta mula sa inilunsad na Activity, ginagamit ang Activity Result API, na pumalit sa lumang startActivityForResult. Ang bagong API ay type-safe, deklaratif, at gumagana sa Jetpack Compose.

kotlin
private val getResult = registerForActivityResult(
    ActivityResultContracts.StartActivityForResult()
) { result ->
    if (result.resultCode == Activity.RESULT_OK) {
        val data = result.data?.getStringExtra("result_key")
    }
}

fun openPicker() {
    val intent = Intent(this, PickerActivity::class.java)
    getResult.launch(intent)
}

Pag-save ng estado kapag muling ginawa

Sa pag-ikot ng screen o pagbabago ng configuration, muling ginagawa ng Android ang Activity — sunud-sunod na tinatawag ang onDestroy at onCreate. Kung hindi nai-save ang estado, nawawala ng user ang mga inilagay na data, posisyon ng scroll, at mga napiling elemento. Upang malutas ang problemang ito, nagbibigay ang Android ng dalawang mekanismo: onSaveInstanceState at ViewModel.

Nagse-save ang onSaveInstanceState ng simpleng data sa Bundle bago tawagin ang onDestroy. Ang ViewModel mula sa Jetpack ay lumalaban sa muling paggawa ng Activity at nag-iimbak ng data sa memory, na mas mahusay para sa mga kumplikadong bagay at mga kahilingan sa network.

kotlin
class MainActivity : AppCompatActivity() {

    private val viewModel: MainViewModel by viewModels()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        // Awtomatikong nagse-save ng data ang ViewModel
        viewModel.items.observe(this) { items ->
            updateAdapter(items)
        }
    }

    override fun onSaveInstanceState(outState: Bundle) {
        super.onSaveInstanceState(outState)
        outState.putInt("scroll_position", recyclerView.computeVerticalScrollOffset())
    }
}

Arkitekturang Single Activity at Jetpack

Ang modernong diskarte ng Google — arkitekturang Single Activity na may isang Activity at maraming Fragment. Gumagamit ang app ng isang MainActivity, at ang buong nabigasyon ay ginagawa ng Navigation Component sa pamamagitan ng NavHostFragment. Mga bentahe: sentralisadong nabigasyon, nakabahaging ViewModel bawat screen, tamang pagtatrabaho sa Deep Links.

Ina-automate ng Jetpack Navigation Component ang pagtatrabaho sa back stack, mga animation ng paglipat at pagpapadala ng argumento. Ang NavHostFragment ay inilalagay sa layout ng Activity, at ang graph ng nabigasyon (NavGraph) ay naglalarawan ng lahat ng screen at mga koneksyon sa pagitan ng mga ito. Ang diskarteng ito ay inirerekomenda ng Google para sa mga bagong proyekto at naaayon sa mga prinsipyo ng Material Design.

kotlin
class MainActivity : AppCompatActivity() {

    private val navController by lazy {
        findViewById<NavHostFragment>(R.id.nav_host_fragment)
            .navController
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        // Configuration ng NavigationUI para sa AppBar
        setupActionBarWithNavController(navController)
    }

    override fun onSupportNavigateUp() = 
        navController.navigateUp() || super.onSupportNavigateUp()
}

Mga madalas itanong

Paano naiiba ang Activity sa Fragment?

Activity — isang buong screen ng app na may sariling lifecycle. Fragment — bahagi ng UI sa loob ng Activity na lumalaban sa muling paggawa ng Activity at nakadepende sa Lifecycle nito. Ang Activity ay sapilitan, ang Fragment ay opsyonal.

Ilang Activity ang maaaring nasa isang app?

Walang limitasyon. Bawat screen ay karaniwang kumakatawan sa isang hiwalay na Activity. Para sa simpleng app, sapat na ang isa, para sa multi-screen — mula 5 hanggang 20. Inirerekomenda ng Google ang isang Activity na may maraming Fragment.

Ano ang launchMode sa Activity?

launchMode ay tumutukoy kung paano ginagawa ang Activity sa stack ng gawain. Apat na mode: standard (ginagawa ang bagong instance), singleTop, singleTask (isang instance sa gawain) at singleInstance (nakahiwalay na gawain). Ang mode ay itinakda sa AndroidManifest.xml.

Paano maglipat ng data sa pagitan ng mga Activity?

Sa pamamagitan ng Intent — isang bagay na may mga extra (putExtra) kung saan inilalagay ang mga primitive, string, Parcelable o Serializable. Para sa feedback, ginagamit ang Activity Result API — ang modernong type-safe na kapalit ng startActivityForResult.

Ano ang Configuration Change sa Android?

Configuration Change — muling paggawa ng Activity sa pagbabago ng configuration (pag-ikot ng screen, pagbabago ng wika, keyboard). Tinatawag ng system ang onDestroy → onCreate. Para sa pag-save ng data, ginagamit ang onSaveInstanceState o ViewModel mula sa Jetpack.

Buod

  • Activity — pangunahing component ng Android na kumakatawan sa isang screen na may user interface at pinamamahalaan sa pamamagitan ng lifecycle
  • Lifecycle ay binubuo ng anim na callback: onCreate, onStart, onResume, onPause, onStop, onDestroy — bawat isa ay may mahigpit na layunin
  • Intent ay nagsisiguro ng paglulunsad ng Activity at paglipat ng data sa pagitan ng mga screen sa pamamagitan ng tahasan at hindi tahasang mga tawag
  • AndroidManifest.xml ay nangangailangan ng sapilitang pagpaparehistro ng bawat Activity na may pangalan, tema, oryentasyon at mga filter
  • ViewModel mula sa Jetpack ay nag-iimbak ng data kapag muling ginawa ang Activity, na pumapalit sa manu-manong pag-save sa onSaveInstanceState
  • Arkitekturang Single Activity na may Navigation Component — modernong pamantayan na inirerekomenda ng Google para sa mga proyekto sa Android
  • launchMode ay namamahala ng pag-uugali ng Activity sa stack ng gawain: mula standard hanggang singleInstance para sa mga nakahiwalay na screen

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

Basahin din