Junior
iOS ilovasining hayot sikli haqida gapira olasizmi?
sobes.tech AI
AIdan javob
Ilova quyidagi holatlardan o'tadi:
- Ishlamayapti: Ilova ishga tushirilmagan.
- Noto'g'ri: Ilova ishga tushirilgan, ammo voqealarni qabul qilmayapti (masalan, kiruvchi qo'ng'iroq yoki fon rejimiga o'tish vaqtida).
- Faol: Ilova faol va to'liq funksional. Barcha voqealarni oladi.
- Fon: Ilova fon rejimida. Cheklangan kodni bajarishi yoki to'xtatilishi mumkin.
- To'xtatilgan: Fon rejimida, ammo uning bajarilishi tizim tomonidan resurslarni tejash uchun to'xtatilgan.
Holatlar o'rtasidagi o'tishlar va ular bilan bog'liq voqealar tizim ramkasi UIKit (yoki SwiftUI) va ilova delegati (UIApplicationDelegate yoki @main Struct SwiftUI) tomonidan boshqariladi.
Ilova delegatining asosiy metodlari:
application:didFinishLaunchingWithOptions:: Ilova ishga tushdi.applicationDidBecomeActive:: Ilova faol holatga o'tdi.applicationWillResignActive:: Ilova faol holatdan chiqmoqda (masalan, kiruvchi qo'ng'iroq vaqtida).applicationDidEnterBackground:: Ilova fon rejimiga o'tdi.applicationWillEnterForeground:: Ilova fondan faol holatga o'tdi.applicationWillTerminate:: Ilova yopildi.
App Delegate'da foydalanish misoli:
import UIKit
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Ilova ishga tushirilganda bajariladi
print("Ilova ishga tushdi")
return true
}
func applicationDidBecomeActive(_ application: UIApplication) {
// Ilova faol holatga o'tdi
print("Ilova faol holatda")
}
func applicationWillResignActive(_ application: UIApplication) {
// Ilova faol holatdan chiqmoqda
print("Ilova faol holatdan chiqmoqda")
}
func applicationDidEnterBackground(_ application: UIApplication) {
// Ilova fon rejimiga o'tdi
print("Ilova fon rejimiga o'tdi")
}
func applicationWillEnterForeground(_ application: UIApplication) {
// Ilova birinchi planga o'tdi
print("Ilova birinchi planga o'tdi")
}
func applicationWillTerminate(_ application: UIApplication) {
// Ilova yopildi
print("Ilova yopildi")
}
}
SwiftUI'da hayot aylanishi @main bilan boshqariladi va onAppear, onDisappear, onChange kabi metodlar bilan nazorat qilinadi. Shuningdek, muhit qiymatlari (Environment Values) sahna holatini (ScenePhase) kuzatishga imkon beradi.
import SwiftUI
@main
struct MyApp: App {
@Environment(\.scenePhase) var scenePhase // Sahna holatini kuzatish
var body: some Scene {
WindowGroup {
ContentView()
}
.onChange(of: scenePhase) { newPhase in
if newPhase == .active {
// Sahna faol holatda
print("Sahna faol holatda")
} else if newPhase == .inactive {
// Sahna inaktiv holatda
print("Sahna inaktiv holatda")
} else if newPhase == .background {
// Sahna fon holatiga o'tdi
print("Sahna fon holatiga o'tdi")
}
}
}
}