1. Các trạng thái của một ứng dụng iOS

Trạng thái Diễn tả
Not running Ứng dụng chưa được khởi động hoặc bị hệ thống đóng.
Inactive Ứng dụng đang chạy ở foreground nhưng hiện tại không nhận sự kiện (có thể đang thực hiện code). Đây là trạng thái quá độ, trước khi chuyển sang một trạng thái khác.
Active Ứng dụng đang chạy ở foreground (ứng dụng hiện tại đang hiển thị) và sẽ nhận các event. Đây là trạng thái bình thường khi bạn đang mở và sử dụng ứng dụng
Background Ứng dụng ở trong background và đang thực thi mã nguồn. Hầu hết các ứng dụng đi vào trạng thái này trong thời gian ngắn trước khi bị kết thúc. Tuy nhiên, một ứng dụng đòi hỏi thêm thời gian thực thi có thể ở lâu hơn trong trạng thái này so với các ứng dụng khác (download, play music, etc). Một ứng dụng cũng có thể khởi động trực tiếp để đi vào trạng thái này.
Suspended Là trạng thái khi ứng dụng ở background nhưng không thực thi code, chẳng hạn khi bạn bấm vào nút Home để trở về màn hình chính của iPhone. Khi ở trong trạng thái này, ứng dụng được duy trì trong bộ nhớ nhưng không thực thi mã nguồn. Khi bộ nhớ sắp hết, một số ứng dụng trong trạng thái Suspended có thể bị đóng để nhường chỗ cho ứng dụng ở Foreground.

2. App delegate khi thay đổi các trạng thái:

application:willFinishLaunchingWithOptions: Method đầu tiên được gọi khi khởi động ứng dụng.

application:didFinishLaunchingWithOptions: Cho phép bạn thực hiện bất cứ khởi tạo nào trước khi ứng dụng hiển thị trên màn hình.

applicationDidBecomeActive: Được gọi trước khi ứng dụng chuẩn bị trở thành ứng dụng foreground.

applicationWillResignActive: Ứng dụng sẽ ra khỏi foreground.

applicationDidEnterBackground: Ứng dụng đã ra khỏi foreground và có thể kết thúc bất cứ lúc nào.

applicationWillEnterForeground: Ứng dụng sẽ ra khỏi background và trở lại foreground nhưng vẫn chưa vào trạng thái active.

applicationWillTerminate: Được gọi khi ứng dụng bị đóng. Method này sẽ không được gọi khi ứng dụng vào trạng thái suspended.

 

3. Vòng đời của UIViewController

uiviewcontroller_lifecycle

loadView: Thường được sử dụng trong các ứng dụng trước iOS5. Từ iOS 5 trở đi, method này thường không được sử dụng nữa.

viewDidLoad: Được gọi một lần khi lần đầu tiên đối tượng view của đối tượng UIViewController hiển thị.

viewWillAppear: Có thể được gọi nhiều lần tuỳ theo view đó đã tồn tại hay chưa. Method này được gọi trước khi view hiển thị trên màn hình.

viewDidAppear: Tương tự viewWillAppear, có thể được gọi nhiều lần. Method này được gọi sau khi view đã hiển thị.

didReceivingMemoryWarning: Khi view đã hiển thị và bộ nhớ bị sử dụng quá nhiều, nó sẽ gọi hàm này để cảnh báo. Bạn có thể dùng hàm này để xoá dữ liệu dư thừa.

viewWillDisappear/viewDidDisappear: Được gọi trước và sau khi view bị remove khỏi màn hình.

viewDidUnload: Là method cuối cùng được gọi sau khi view đã biến mất khỏi màn hình.

Nguồn: http://developerviet.com