Chuyên gia về Hallo,Chỉ ứng dụngWillResignActive được gọi khi iPhone tắt?
Tôi đã thử nghiệm điều gì đang xảy ra với ứng dụng của mình khi iPhone bị tắt trong khi ứng dụng đang hoạt động. Vì mục đích này, tôi đã ghi lại các phương thức gọi lại của vòng đời của ứng dụng trong bảng điều khiển trình gỡ lỗi xcode.
Kết quả là: Khi tôi nhấn nút bật/tắt của thiết bị trong một khoảng thời gian applicationWillResignActive
được gọi. IPhone hiển thị tùy chọn tắt thiết bị trên màn hình. Nếu tôi xác nhận sẽ tắt, iPhone sẽ tắt. Nhưng một cách rõ ràng không có phương thức gọi lại nào khác như applicationDidEnterBackground
hoặc applicationWillTerminate
được gọi là. Do đó, tất cả dữ liệu sẽ bị mất nếu tôi không lưu dữ liệu trong applicationWillResignActive
. Mặc dù iOS Application Programming Guide cho biết, bạn nên lưu dữ liệu của ứng dụng trong applicationDidEnterBackground
và applicationWillTerminate
.
Bạn nghĩ gì, là một trong hai phương pháp vẫn được gọi và chỉ không được in trong bảng điều khiển nữa?
Trân trọng
Quan sát thú vị. Có vẻ như nó có thể được gọi bởi giao diện điều khiển bị ngắt kết nối bởi sau đó, nhưng tôi đặt cược nó thậm chí không bao giờ được gọi. Linh cảm của tôi là các ứng dụng iOS được xử lý như chấm dứt đột ngột của OSX nên quá trình này bị giết mà không có thông báo. Nhưng sau đó một lần nữa tôi đặt cược người dùng rất hiếm khi tắt thiết bị của họ (nếu họ thậm chí biết làm thế nào). –
Nhưng thiết bị cũng tắt nếu pin cạn. Thật khó để kiểm tra hành vi của một ứng dụng trong trường hợp có một người đánh nhau. Bởi vì nếu bạn kết nối iPhone của bạn với máy tính phát triển để đăng nhập các phương thức gọi lại trong bảng điều khiển, nó sẽ bị tính phí! Nhưng tôi đoán ứng dụng hoạt động tương tự như tắt thủ công. – Coco
Tôi đã thử nghiệm trên 3GS chạy iOS 5.0 ... nếu tắt công tắc, applicationDidEnterBackground cũng như applicationWillTerminate được gọi! Thiết bị đã đăng nhập vào bảng điều khiển trước khi tắt. – Dev