# Vòng đời của ứng dụng (iOS) > Trạng thái ứng dụng, AppDelegate, SceneDelegate, background modes, kết thúc ứng dụng - 20 câu hỏi phỏng vấn - Junior - [Câu hỏi phỏng vấn: iOS](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van.md) ## 1. UIApplicationDelegate là gì? **Câu trả lời** UIApplicationDelegate là một protocol định nghĩa các phương thức callback cho vòng đời của ứng dụng. Nó cho phép phản hồi các sự kiện quan trọng như khởi chạy, chuyển sang nền hoặc chuyển lên tiền cảnh. Mọi ứng dụng iOS phải triển khai protocol này trong lớp AppDelegate của mình để quản lý vòng đời một cách chính xác. Đây là điểm trung tâm để khởi tạo các dịch vụ bên thứ ba, cấu hình thông báo và quản lý các chuyển đổi trạng thái toàn cục. Từ iOS 13, protocol này chia sẻ trách nhiệm với SceneDelegate để quản lý nhiều cửa sổ. ## 2. Phương thức application(_:didFinishLaunchingWithOptions:) được gọi khi nào? **Câu trả lời** Phương thức này được gọi khi ứng dụng khởi chạy, sau khi khởi tạo UIApplication và trước khi giao diện người dùng được hiển thị. Đây là thời điểm lý tưởng để khởi tạo các dịch vụ bên thứ ba, cấu hình cơ sở dữ liệu, đăng ký thông báo và thiết lập các tham số toàn cục. Nên tránh các thao tác dài vì chúng làm trễ việc hiển thị ban đầu. ## 3. Các trạng thái chính trong vòng đời của ứng dụng iOS là gì? **Câu trả lời** Vòng đời có năm trạng thái chính: Not Running (ứng dụng chưa khởi chạy hoặc đã bị kết thúc), Inactive (ứng dụng ở tiền cảnh nhưng không nhận sự kiện, gián đoạn tạm thời), Active (ứng dụng hoạt động bình thường và nhận sự kiện), Background (ứng dụng chạy ở nền với khoảng 30 giây trước khi bị tạm dừng) và Suspended (ứng dụng bị đóng băng trong bộ nhớ, không thực thi). Hiểu các trạng thái này cho phép quản lý tài nguyên đúng cách, xử lý quyền và tối ưu hóa pin. Việc chuyển đổi giữa các trạng thái này kích hoạt các phương thức AppDelegate hoặc SceneDelegate. ## Còn 17 câu hỏi nữa - Sự khác biệt giữa applicationWillResignActive và applicationDidEnterBackground là gì? - Vai trò của applicationDidBecomeActive là gì? Đăng ký miễn phí: https://sharpskill.dev/vi/login ## Các chủ đề phỏng vấn iOS khác - [Kiến thức cơ bản về Swift](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/swift-basics.md): 25 câu hỏi, Junior - [Kiến thức cơ bản về ngôn ngữ Swift](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/swift-language-essentials.md): 15 câu hỏi, Junior - [Kiến thức cơ bản về UIKit](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/uikit-fundamentals.md): 18 câu hỏi, Junior - [Vòng đời UIViewController](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/uiviewcontroller-lifecycle.md): 20 câu hỏi, Junior - [UserDefaults & Keychain](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/userdefaults-keychain.md): 20 câu hỏi, Junior - [Auto Layout & Constraints](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/auto-layout-constraints.md): 24 câu hỏi, Mid-Level - [UITableView & UICollectionView](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/uitableview-uicollectionview.md): 25 câu hỏi, Mid-Level - [Kiến thức cơ bản về SwiftUI](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/swiftui-basics.md): 18 câu hỏi, Mid-Level - [Quản lý trạng thái SwiftUI](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/swiftui-state-management.md): 22 câu hỏi, Mid-Level - [Điều hướng SwiftUI](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/swiftui-navigation.md): 18 câu hỏi, Mid-Level - [Networking & URLSession](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/networking-urlsession.md): 20 câu hỏi, Mid-Level - [Codable & Phân tích JSON](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/codable-json-parsing.md): 20 câu hỏi, Mid-Level - [Core Data](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/core-data.md): 22 câu hỏi, Mid-Level - [Lập trình hướng giao thức](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/protocol-oriented-programming.md): 20 câu hỏi, Mid-Level - [Kiến trúc MVVM](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/mvvm-architecture.md): 20 câu hỏi, Mid-Level - [Thông báo Push](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/push-notifications.md): 18 câu hỏi, Mid-Level - [Unit Testing & XCTest](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/unit-testing-xctest.md): 20 câu hỏi, Mid-Level - [Kiểm thử giao diện người dùng](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/ui-testing.md): 18 câu hỏi, Mid-Level - [Xcode & Hệ thống Build](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/xcode-build-system.md): 16 câu hỏi, Mid-Level - [Swift Package Manager](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/swift-package-manager.md): 16 câu hỏi, Mid-Level - [Memory Management & ARC](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/memory-management-arc.md): 22 câu hỏi, Senior - [Combine Framework](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/combine-framework.md): 24 câu hỏi, Senior - [Concurrency & async/await](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/concurrency-async-await.md): 26 câu hỏi, Senior - [iOS Design Patterns](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/ios-design-patterns.md): 24 câu hỏi, Senior - [Tối ưu hóa hiệu suất](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/performance-optimization.md): 22 câu hỏi, Senior - [Bảo mật và mã hóa](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/security-encryption.md): 20 câu hỏi, Senior - [SwiftUI Advanced](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/swiftui-advanced.md): 22 câu hỏi, Senior - [Kiến trúc ứng dụng iOS](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/ios-app-architecture.md): 22 câu hỏi, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/app-lifecycle