Sobes.tech
Junior

Ի՞նչ մեթոդներ եք ճանաչում Activity-ի կյանքի ցիկլից և ինչպես են դրանք կատարվում:

sobes.tech AI

Պատասխան AI-ից

  • onCreate(): Հրավիրում է Activity առաջին անգամ ստեղծելու ժամանակ: Օգտագործվում է UI և տվյալների սկզբնական կարգավորումների համար:
  • onStart(): Activity դառնում է տեսանելի օգտագործողին:
  • onResume(): Activity դառնում է ակտիվ և գտնվում է առաջի պլանում: Օգտագործողը կարող է փոխազդել դրա հետ:
  • onPause(): Հրավիրում է, երբ Activity անցնում է հետևի պլան կամ մյուս Activity մասամբ փակվում է: Օգտագործվում է արագ վերականգնվող վիճակի պահպանման համար:
  • onStop(): Activity այլևս չի երևում օգտագործողին: Օգտագործվում է անօգտագործվող ռեսուրսների ազատման համար:
  • onDestroy(): Հրավիրում է, նախքան Activity կործանվի: Օգտագործվում է ռեսուրսների վերջնական մաքրման համար:
  • onRestart(): Հրավիրում է onStop()-ից հետո, երբ Activity նորից դառնում է տեսանելի:

Սկսման ժամանակ մեթոդների կատարման հաջորդականությունը: onCreate() -> onStart() -> onResume():

Անցում հետևի պլան (օրինակ, Home կոճակին սեղմելու դեպքում): onPause() -> onStop():

Վերադառնալուց հետո ֆոնից: onRestart() -> onStart() -> onResume():

Activity- ի ոչնչացման ժամանակ: onPause() -> onStop() -> onDestroy():

Երբ էկրանը շրջվում է, Activity- ը ոչնչացվում և նորից ստեղծվում: Հետևյալ հաջորդականությունը: onPause() -> onStop() -> onDestroy() -> onCreate() -> onStart() -> onResume():

Կարգավիճակի պահպանման համար օգտագործվում է onSaveInstanceState() (կոչվում է onStop()-ից առաջ) և վերականգնում onCreate() կամ onRestoreInstanceState()-ում (կոչվում է onStart()-ից հետո):

class MyActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main) // UI-ի սկզբնական կարգավորումներ
        // Կարգավիճակի վերականգնում savedInstanceState-ից
    }

    override fun onStart() {
        super.onStart()
        // Activity դառնում է տեսանելի
    }

    override fun onResume() {
        super.onResume()
        // Activity- ն առաջի պլանում է, հասանելի փոխազդեցության համար
    }

    override fun onPause() {
        super.onPause()
        // Activity անցնում է հետևի պլան
        // Արագ վերականգնվող վիճակի պահպանում
    }

    override fun onStop() {
        super.onStop()
        // Activity այլևս չի երևում
        // ռեսուրսների ազատում
    }

    override fun onDestroy() {
        super.onDestroy()
        // Activity ոչնչացվում է
        // Վերջնական մաքառում ռեսուրսների
    }

    override fun onRestart() {
        super.onRestart()
        // Activity վերադառնում է ֆոնից
    }

    override fun onSaveInstanceState(outState: Bundle) {
        super.onSaveInstanceState(outState)
        // Կարգավիճակի պահպանում նախքան ոչնչացումը
    }

    override fun onRestoreInstanceState(savedInstanceState: Bundle) {
        super.onRestoreInstanceState(savedInstanceState)
        // Կարգավիճակի վերականգնում
    }
}