Junior
Меёрӣ дар бораи давраи зиндагии барномаи iOS гап занӣ?
sobes.tech AI
Ҷавоб аз AI
Қосымшаның келесі жағдайлардан өтуі:
- Жүгіруде емес: Қосымша іске қосылмаған.
- Белсенді емес: Қосымша іске қосылған, бірақ оқиғаларды қабылдамайды (мысалы, кіріс қоңырау кезінде немесе фон режиміне өту кезінде).
- Белсенді: Қосымша белсенді және толық функционалды. Барлық оқиғаларды қабылдайды.
- Фон: Қосымша фон режимінде. Шектеулі кодты орындай алады немесе тоқтатылуы мүмкін.
- Тоқтатылған: Қосымша фон режимінде, бірақ оның орындалуы жүйе ресурстарын үнемдеу үшін тоқтатылған.
Күй арасындағы өту және оларға байланысты оқиғалар жүйелік UIKit (немесе SwiftUI) және қосымша делегаты (UIApplicationDelegate немесе @main Struct SwiftUI-да) арқылы басқарылуы мүмкін.
Қосымшаның делегатының негізгі әдістері:
application:didFinishLaunchingWithOptions:: Қосымша іске қосылды.applicationDidBecomeActive:: Қосымша белсенді болды.applicationWillResignActive:: Қосымша белсенділіктен шықты (мысалы, кіріс қоңырау кезінде).applicationDidEnterBackground:: Қосымша фон режиміне өтті.applicationWillEnterForeground:: Қосымша фоннан алдыңғыға өтті.applicationWillTerminate:: Қосымша жабылды.
App Delegate-те мысал:
import UIKit
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Қосымша іске қосылған кезде орындалады
print("Қосымша іске қосылды")
return true
}
func applicationDidBecomeActive(_ application: UIApplication) {
// Қосымша белсенді болды
print("Қосымша белсенді")
}
func applicationWillResignActive(_ application: UIApplication) {
// Қосымша белсенділіктен шықты
print("Қосымша белсенділіктен шықты")
}
func applicationDidEnterBackground(_ application: UIApplication) {
// Қосымша фон режиміне өтті
print("Қосымша фон режиміне өтті")
}
func applicationWillEnterForeground(_ application: UIApplication) {
// Қосымша фоннан алдыңғыға өтті
print("Қосымша фоннан алдыңғыға өтті")
}
func applicationWillTerminate(_ application: UIApplication) {
// Қосымша жабылды
print("Қосымша жабылды")
}
}
SwiftUI-де өмірлік цикл @main құрылымымен және onAppear, onDisappear, onChange әдістерімен басқарылуы мүмкін. Сондай-ақ, ScenePhase арқылы күйді бақылауға болады:
import SwiftUI
@main
struct MyApp: App {
@Environment(\.scenePhase) var scenePhase // Көрініс күйін бақылау
var body: some Scene {
WindowGroup {
ContentView()
}
.onChange(of: scenePhase) { newPhase in
if newPhase == .active {
// Көрініс белсенді болды
print("Көрініс белсенді")
} else if newPhase == .inactive {
// Көрініс белсенді емес
print("Көрініс белсенді емес")
} else if newPhase == .background {
// Көрініс фон режиміне өтті
print("Көрініс фон режиміне өтті")
}
}
}
}