Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> iOS

Cách thoát ứng dụng iPhone một cách graceful (đẹp mắt)

Có những lúc chúng ta muốn đóng ứng dụng do một lý do nào đó, ví dụ không có kết nối internet và muốn thoát app, hoặc lý do khác theo logic ứng dụng. Tuy nhiên, Apple khuyến khích không nên thoát ứng dụng theo chương trình (programmatically quit), do đó iOS không hỗ trợ chính thức việc này.

Cách duy nhất được Apple chấp nhận

Cách duy nhất để "kill" ứng dụng iOS một cách logic là nhấn nút Home (hoặc vuốt lên từ dưới lên trên iPhone không có nút Home). Ngay khi nút Home được nhấn, ứng dụng thoát khỏi bộ nhớ và bộ nhớ được giải phóng/dọn dẹp.

Các cách khác (Không khuyến khích, có thể bị reject App Store)

  • exit(0) – Lệnh này có thể dùng để thoát ứng dụng khi sự kiện xảy ra.
  • [[NSThread mainThread] exit] – Cách dựa trên Objective-C.
  • Gọi thủ công delegate method: applicationWillTerminate(_:)

Cảnh báo: Apple không cung cấp cách hoàn hảo để thoát ứng dụng bằng các phương pháp trên. Việc sử dụng exit(0) có thể khiến ứng dụng bị từ chối khi duyệt App Store vì vi phạm Human Interface Guidelines.

Khuyến nghị tốt nhất

Hiển thị một cảnh báo (alert) yêu cầu người dùng nhấn nút Home (hoặc vuốt lên) để thoát ứng dụng. Đây là cách tuân thủ nguyên tắc của Apple và trải nghiệm người dùng tốt nhất.

let alert = UIAlertController(title: "Cần thoát ứng dụng", 
                              message: "Vui lòng nhấn nút Home để thoát.", 
                              preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .default))
present(alert, animated: true)