ANR là gì?

Abbrev Android

ANR là một từ viết tắt của Application Not Responding mô tả một ứng dụng Android không phản hồi. Khi một ứng dụng đang chạy trên thiết bị Android và ngừng phản hồi, sự kiện "ANR" sẽ được kích hoạt. Hai điều kiện có thể gây ra lỗi ANR trên thiết bị Android:

  • Ứng dụng đang hoạt động không phản hồi sự kiện đầu vào trong vòng 5 giây.
  • Lớp (class) BroadcastReceiver không hoàn thành việc thực thi sau một khoảng thời gian dài.

Nếu lỗi ANR xảy ra trên thiết bị Android của bạn, một hộp thoại (dialog box) sẽ xuất hiện trên màn hình. Thông điệp sẽ thông báo cho bạn biết ứng dụng không phản hồi và sẽ hỏi bạn có muốn đóng ứng dụng hay không. Bạn có hai lựa chọn: Wait hoặc OK. Chọn "Wait " sẽ cho phép bạn tiếp tục chờ nếu bạn muốn cho ứng dụng thêm thời gian. Chọn "OK" sẽ đóng ứng dụng và bạn có thể mất hoạt động chưa lưu.

Lỗi ANR xảy ra vì nhiều lý do khác nhau. Một số liên quan đến nhà phát triển, chẳng hạn như một hàm (function) được viết kém, lặp lại nhiều lần hơn mức cần thiết. Những thứ khác liên quan đến thiết bị, có nghĩa là phần cứng không thể theo kịp yêu cầu của ứng dụng. Ví dụ: nếu một ứng dụng đang hiển thị một tài liệu (document) lớn, có thể mất vài giây để tải dữ liệu và hiển thị hình ảnh trên màn hình. Điều này có thể tạo ra một thông báo ANR, mặc dù quá trình có thể hoàn tất sau đó vài giây.

ANR khác với crash. Crash khiến một chương trình bị thoát đột ngột. ANR khiến chương trình "treo" ở trạng thái không phản hồi trong vài giây, nhưng chương trình có thể phục hồi.

Learning English Everyday