Hồi trước mình đã chia sẻ với mọi người về iOS, hôm nay mình sẽ giải thích thêm về cách máy iOS hoạt động để mọi người hiểu rõ hơn về việc ứng dụng thỉnh thoảng bị load lại khi quay lại sử dụng.Các trạng thái hoạt động của ứng dụng trên iOS
Các trạng thái của ứng dụng quyết định hành động của nó trên iOS. Dưới đây là các trạng thái của một ứng dụng trên iOS:- Not running: ứng dụng không hoạt động
- Inactive: khi chuyển từ ứng dụng khác hoặc có thông báo, ứng dụng ở trạng thái này.
- Active: ứng dụng đang hoạt động và có thể sử dụng bình thường.
- Background: ứng dụng hoạt động ẩn sau khi thoát ra.
- Suspended: ứng dụng tạm ngừng, vẫn nằm trong bộ nhớ.
- Khi bị ngừng, nếu không mở lại, ứng dụng sẽ bị kết thúc và quay về trạng thái không chạy.
Apple yêu cầu ứng dụng ít hoạt động khi chạy nền nhất có thể, tối ưu tài nguyên RAM và hoàn thành công việc nhanh chóng. Lý tưởng nhất là sau khi vào nền, ứng dụng không thực hiện thêm hành động nào.- Lưu trữ dữ liệu người dùng vào bộ nhớ và đóng tất cả các tập tin đang mở
- Tạm dừng thực hiện các tác vụ
- Không đặt hẹn giờ cho việc xử lý tác vụ mới
- Tắt các bộ đếm thời gian
- Trong trường hợp đang chơi game, game sẽ tạm dừng ngay lập tức
- Dừng mọi lệnh đồ họa
- Phát nhạc
- Theo dõi vị trí, ví dụ như ứng dụng chỉ đường
- Ứng dụng gọi điện qua Internet (VoIP), như Skype, Facebook Messenger, cho phép bạn gọi điện khi thoát ứng dụng
- Ứng dụng cập nhật tin tức mới
- Ứng dụng cần kết nối với các phụ kiện nối vào máy
Đa nhiệm trên iOS
iOS thực hiện đa nhiệm tương tự như Android. Khi mở ứng dụng mới, nó sẽ chồng lên ứng dụng hiện tại và bạn có thể quản lý chúng qua màn hình đa nhiệm. Khi chuyển đổi ứng dụng, ứng dụng cũ sẽ bị tạm ngừng. Sau một thời gian không sử dụng, ứng dụng sẽ bị kết thúc hoàn toàn.
Nếu quay lại app sau một thời gian ngắn, app vẫn tiếp tục từ nơi bạn đã dừng, vì nó chỉ bị tạm ngừng và vẫn nằm trong bộ nhớ RAM.Apple cung cấp hàm applicationWillTerminate để lập trình viên chuẩn bị cho việc app bị kết thúc hoàn toàn. Nếu không kịp hoàn thành, hệ thống sẽ tự động kết thúc app. Khi bạn đóng app từ giao diện đa nhiệm, nó sẽ bị giải phóng hoàn toàn khỏi bộ nhớ và không thể truy cập Internet. Tuy nhiên, nếu iOS tự động xử lý, app vẫn có thể chạy một số tác vụ nền, nhưng iOS sẽ giám sát và cập nhật thời gian giữa các lần chạy nền dựa trên cách bạn sử dụng app.
