Junior
iOS tətbiqinin həyat dövrü haqqında danışa bilərsinizmi?
sobes.tech Süni İntellekt
AI-dan cavab
Tətbiq aşağıdakı vəziyyətlərdən keçir:
- İşləmir: Tətbiq işə salınmayıb.
- İşləmir: Tətbiq işə salınıb, lakin hadisələri almır (məsələn, daxil olan zəng zamanı və ya fon rejiminə keçərkən).
- Aktiv: Tətbiq aktivdir və tam funksionaldır. Bütün hadisələri alır.
- Fon: Tətbiq fon rejimindədir. Məhdud kod icra edə bilər və ya dayandırıla bilər.
- Dayandırılmış: Fon rejimində olan tətbiq, sistem tərəfindən resursların qənaəti üçün dayandırılıb.
Vəziyyətlər arasındakı keçidlər və onlarla əlaqəli hadisələr sistem çərçivəsi UIKit (və ya SwiftUI) və tətbiq delegatı (UIApplicationDelegate və ya @main Struct SwiftUI-də) tərəfindən idarə olunur.
Tətbiq delegatının əsas metodları:
application:didFinishLaunchingWithOptions:: Tətbiq işə salınıb.applicationDidBecomeActive:: Tətbiq aktivləşib.applicationWillResignActive:: Tətbiq aktiv vəziyyətdən çıxır (məsələn, daxil olan zəng zamanı).applicationDidEnterBackground:: Tətbiq fon rejiminə keçir.applicationWillEnterForeground:: Tətbiq fon vəziyyətindən aktiv vəziyyətə keçir.applicationWillTerminate:: Tətbiq bağlanır.
App Delegate-də istifadə nümunəsi:
import UIKit
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Tətbiqin başlanğıcında icra olunur
print("Tətbiq işə salındı")
return true
}
func applicationDidBecomeActive(_ application: UIApplication) {
// Tətbiq aktiv oldu
print("Tətbiq aktiv oldu")
}
func applicationWillResignActive(_ application: UIApplication) {
// Tətbiq aktiv vəziyyətdən çıxır
print("Tətbiq aktiv vəziyyətdən çıxır")
}
func applicationDidEnterBackground(_ application: UIApplication) {
// Tətbiq fon rejiminə keçdi
print("Tətbiq fon rejiminə keçdi")
}
func applicationWillEnterForeground(_ application: UIApplication) {
// Tətbiq ön plana keçdi
print("Tətbiq ön plana keçdi")
}
func applicationWillTerminate(_ application: UIApplication) {
// Tətbiq bağlanır
print("Tətbiq bağlanır")
}
}
SwiftUI-də həyat dövrü @main strukturu və onAppear, onDisappear, onChange metodları ilə idarə olunur. Həmçinin, Environment Values vasitəsilə səhnənin vəziyyətini (ScenePhase) izləmək mümkündür.
import SwiftUI
@main
struct MyApp: App {
@Environment(\.scenePhase) var scenePhase // Səhnə vəziyyətinin izlənməsi
var body: some Scene {
WindowGroup {
ContentView()
}
.onChange(of: scenePhase) { newPhase in
if newPhase == .active {
// Səhnə aktiv oldu
print("Səhnə aktiv oldu")
} else if newPhase == .inactive {
// Səhnə inaktiv oldu
print("Səhnə inaktiv oldu")
} else if newPhase == .background {
// Səhnə fon rejiminə keçdi
print("Səhnə fon rejiminə keçdi")
}
}
}
}