Sobes.tech
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")
            }
        }
    }
}