Mình đã từng gặp một vài người bạn sử dụng iPhone có thói quen thoát các ứng dụng chạy ngầm mà họ chỉ vừa mới mở lên cách đó vài phút. Mình biết tại sao họ phải làm điều này nhưng mình không thể hỏi họ về điều đó. “Tao đang làm điều này để tiết kiệm pin” một người bạn của mình trả lời, và anh ta không biết làm như vậy sẽ còn có tác dụng ngược lại với tuổi thọ pin của iPhone.
Xem thêm:
- Các cách để khắc phục thời lượng pin trên iOS 10 và iPhone 7
- Sạc pin lần đầu cho thiết bị iOS và những sai lầm mà người dùng thường mắc phải
Mình đã cố gắng giải thích lý do tại sao thoát các ứng dụng chạy ngầm sẽ làm tiêu tốn pin của thiết bị nhanh hơn nhưng không ai tin, thậm chí là với cả những người thân trong gia đình mình. Họ tin rằng thói quen này của họ sẽ là cách thực sự giúp cho thiết bị tiết kiệm pin hơn.
Nếu bạn là một người có thói quen như vậy, mình hy vọng rằng bài viết này sẽ một phần nào đó thay đổi suy nghĩ của bạn về vấn đề này.
Tóm lược
Với những bạn không quan tâm đến những chi tiết cụ thể, đây là những ý chính:
- Trừ khi một ứng dụng nào đó bị crash hoặc bị lỗi, bạn không nên thoát ngầm một ứng dụng nào cả.
- Không giống như những gì mà nhiều người tin, thoát ứng dụng ngầm thực sự gây tốn pin.
- Apple đang cho phát triển các công cụ thích hợp để các ứng dụng của họ làm việc hiệu quả hơn khi chạy ngầm.
- Người dùng nên tin tưởng hệ thống quản lý của iOS sẽ làm tốt công việc của mình với các ứng dụng chạy ngầm.
Bây giờ, nếu bạn muốn hiểu rõ và chi tiết hơn, đọc lời giải thích cụ thể bên dưới đây.
Thuật ngữ: đóng và ép buộc đóng
Để dễ dàng hơn trong bài viết này, bạn cần phải hiểu rõ về vài thuật ngữ cơ bản như: đóng và ép buộc đóng (thoát ngầm).
– Đóng một ứng dụng được thực hiện bằng cách nhấn nút Home.
– Ép buộc đóng một ứng dụng yêu cầu người dùng phải nhấn nút home 2 lần, sau đó vuốt thẻ ứng dụng đó lên trên trong màn hình đa nhiệm.
Trong suy nghĩ
Trong suy nghĩ của nhiều người, thoát ứng dụng chạy ngầm sẽ tiết kiệm pin vì những ứng dụng này sẽ không được chạy ngầm trên thiết bị nữa. Đó là những gì mọi người tin tưởng, và trong nhiều trường hợp, đó là những gì họ đã nói với bạn bè, gia đình, hoặc thậm chí tệ hơn, là bởi các nhân viên của Apple.
Thực tế
Thực tế là khi bạn đóng một ứng dụng bằng cách nhấn nút Home, nó đó sẽ ngừng sử dụng CPU và bộ nhớ của thiết bị. Tại thời điểm đó, ứng dụng sẽ xuất hiện trong danh sách chạy ngầm.
Có những ngoại lệ, mà chúng ta sẽ tìm hiểu về chúng, nhưng là một khái niệm chung, nhấn nút Home để đóng ứng dụng, đặt nó trong vùng bị “đình chỉ” hầu như không hao tốn về pin. Bằng cách giữ một ứng dụng trong bộ nhớ, hệ thống sẽ làm việc để chắc chắn rằng bạn có thể mở nó lên khi bạn khởi động ứng dụng đó một lần nữa.
Khi bạn thoát ngầm một ứng dụng, điều này sẽ làm giảm tải bộ nhớ được sử dụng bởi ứng dụng đó, tất nhiên trong đó có một tác động tiêu cực, mặc dù rất nhỏ, đó là pin của bạn. Thời gian tiếp theo bạn khởi động ứng dụng này, hệ điều hành sẽ chạy lại các quy trình để tải nó trở lại trong bộ nhớ, và tất nhiên, CPU sẽ làm việc nhiều hơn khiến cho pin của máy sụt giảm.
Việc nhấn nút Home để để đưa một ứng dụng nào đó vào danh sách chạy ngầm sẽ không làm cho CPU hoạt động nhiều mặc dù nó vẫn còn trong bộ nhớ, điều này hầu như không ảnh hưởng đến pin.
Ví dụ thực tế
Nếu cách diễn giải ở trên gây khó hiểu đối với bạn thì mình sẽ lấy một ví dụ trong thực tế để giúp bạn dễ hiểu hơn.
Hãy tưởng tượng bạn đang xem TV và bạn khát nước. Bạn đi vào nhà bếp và lấy một cái ly (cốc), đổ nước vào đó và uống đi một nửa. Sau đó bạn đổ nửa còn lại kia vào bồn rửa bát và quay lại xem TV.
Năm phút sau, bạn thấy khát nước lại. Bạn quay lại bếp, lấy cái ly lần nữa và đổ nước vào, uống một nữa và tiếp tục đổ nữa kia vào bồn rửa.
Nó thực sự điên rồ phải không nào? Tại sao bạn phải đổ nước đi khi mà rất có khả năng là bạn sẽ khát một lần nữa trong tương lai gần? Tại sao bạn không để lại một nửa ly nước kia trên bàn và uống nó khi cần thiết thay vì làm đầy nó một lần nữa?
Bạn đang lãng phí nguồn lực, và đó chính xác là những gì bạn đang làm khi bạn ép buộc thoát một ứng dụng. Bạn đang lãng phí pin bằng cách loại bỏ các ứng dụng ra khỏi bộ nhớ, và tải nó trở lại một khi bạn khởi động lại ứng dụng.
Làm thế nào mà iOS xử lý mọi thứ khi bạn đóng ứng dụng
Trong một bài viết chi tiết quan niệm sai lầm về đa nhiệm iOS, Fraser Spears giải thích rằng các ứng dụng có thể ở một trong năm trạng thái như sau:
- Không chạy (Not running): ứng dụng chưa được mở lên. Nó không nằm trong bộ nhớ. Nó không sử dụng pin của thiết bị.
- Không hoạt động (Inactive): ứng dụng được mở nhưng không được sử dụng (ví dụ như người dùng khóa máy lại nhưng ứng dụng vẫn đang hoạt động). Nó nằm trong bộ nhớ, nhưng không sử dụng CPU hoặc pin.
- Hoạt động (Active): ứng dụng được mở và sử dụng. Nó sử dụng CPU và nằm trong bộ nhớ. Nó sử dụng pin.
- Chạy ngầm (Background): các ứng dụng được mở nhưng không xuất hiện trên màn hình. Nó sử dụng CPU và nằm trong bộ nhớ. Nó sử dụng pin.
- Bị treo (Suspended): ứng dụng không còn xuất hiện trên màn hình và không còn hoạt động. Nó không sử dụng CPU nhưng nó nằm trong bộ nhớ. Nó không sử dụng pin.
Từ lúc ứng dụng chạy ngầm cho đến bị treo
Nếu bạn đang sử dụng một ứng dụng, nó được coi là hoạt động, sử dụng CPU và bộ nhớ. Ngay sau khi bạn nhấn nút Home, ứng dụng được chuyển đến danh sách chạy ngầm, nơi mà nó sẽ ở lại trong một thời gian rất ngắn (vài giây) trước khi bị treo. Trong vòng vài giây sau khi bạn nhấn nút Home, ứng dụng sẽ bị treo, không còn sử dụng CPU nhưng nó vẫn còn nằm trong bộ nhớ, do đó nó có thể tiếp tục được mở lên một cách nhanh chóng khi bạn khởi động ứng dụng.
Từ bị treo cho đến không chạy
Nếu bạn đang chạy nhiều game trong bộ nhớ và ví dụ như thiết bị của bạn đang cần bộ nhớ, hệ thống sẽ tìm và làm cho một ứng dụng nào đó bị treo để tạo thêm không gian cho ứng dụng chạy nền khác. iOS sẽ đặt ứng dụng bị treo đó vào trạng thái “không chạy” và sau đó nó sẽ được loại bỏ hoàn toàn khỏi bộ nhớ. Hiểu đơn giản là iOS sẽ tự động ép buộc một ứng dụng nào đó ngừng chạy thay cho bạn để giải phóng bộ nhớ cho các ứng dụng khác.
Bạn có thể đọc thêm về quy trình iOS xử lý ứng dụng trong bài hướng dẫn lập trình ứng dụng của Apple cho iOS.
Trường hợp ngoại lệ
Đây là phần sẽ nói đến những trường hợp ngoại lệ được phép “phá vỡ” các quy tắc mà mình đã nói ở trên. Trong thư viện phát triển của mình, Apple đã đưa ra chi tiết về những loại ứng dụng, mà mình sẽ tổng hợp nhanh dưới đây.
Ứng dụng cần thêm thời gian chạy ngầm trước khi kết thúc nhiệm vụ: đây là những ứng dụng mà bạn đã đóng từ trước nhưng nó cần thêm thời gian để hoàn thành nhiệm vụ của mình khi ứng dụng được đóng lại. Ví dụ, nếu bạn đang sử dụng một ứng dụng email của bên thứ ba để gửi một tập tin rất lớn, bạn có thể nhấn “Gửi” và đóng ứng dụng lại. Ứng dụng này có thể yêu cầu thời gian ở trong nền lâu hơn để nó hoàn thành nhiệm vụ. Một khi nhiệm vụ được thực hiện, ứng dụng sẽ bị treo.
Ứng dụng cần phải tải nội dung trong nền: đây là những ứng dụng mà ngay cả khi bạn đóng chúng thì việc tải về vẫn có thể diễn ra, nó cần một khoảng thời gian trong nền để tải xong mục bạn yêu cầu trước khi nó bị treo. Một ví dụ đó là ứng dụng Podcast đang tải một tập phim mới. Bạn có thể bắt đầu tải về, đóng ứng dụng, nhưng việc tải về sẽ vẫn tiếp tục trong nền.
Ứng dụng cần phải thực hiện các nhiệm vụ lâu dài: đây là những ứng dụng phải được phép chạy trong nền để thực hiện các loại nhiệm vụ cụ thể, chẳng hạn như phát nội dung âm thanh (ứng dụng nghe nhạc), ghi âm, theo dõi các vị trí (ứng dụng bản đồ), hỗ trợ Voice over Internet Protocol (chẳng hạn như Skype), xử lý nội dung mới thường xuyên (ứng dụng kiểu tin tức), và nhận được cập nhật thường xuyên từ các phụ kiện bên ngoài (một ứng dụng liên kết với một màn hình nhịp tim vật lý).
Một lần nữa, người dùng phải tin tưởng rằng hệ thống iOS sẽ sẽ quản lý một cách hiệu quả các ứng dụng này.
Bạn có thể đọc thêm về cách mà ứng dụng chạy nền trong bài hướng dẫn lập trình ứng dụng của Apple cho iOS.
Làm mới ứng dụng trong nền
Với tất cả những gì đã nói trên, một số bạn có thể tự hỏi điều gì sẽ xảy ra với ứng dụng khi tính năng “Làm mới ứng dụng trong nền” (Background App Refresh) được kíc hoạt . Mình không thể tìm thấy nhiều chi tiết kỹ thuật về tính năng này, trừ các tài liệu từ trang hỗ trợ của Apple dưới đây:
Sau khi bạn chuyển sang một ứng dụng khác, một số ứng dụng sẽ vẫn chạy trong một khoảng thời gian ngắn trước khi chúng được đưa vào chế độ treo. Ứng dụng đang trong chế độ treo sẽ không chủ động trong việc sử dụng, mở, hoặc chiếm tài nguyên hệ thống. Với “Làm mới ứng dụng trong nền”, ứng dụng bị treo vẫn có thể kiểm tra các bản cập nhật và nội dung mới.
Và đây là tài liệu trước đó về vấn đề này (sau này đã được Apple sửa đổi như trên):
Một số ứng dụng có thể tiếp tục chạy trong nền. Bạn có thể cho phép các ứng dụng này làm mới thông tin bằng cách bật tính năng “Làm mới ứng dụng trong nền”. Cài đặt này cho phép ứng dụng kiểm tra các nội dung và tải về những bản cập nhật mới, hoặc tải nội dung cập nhật trong nền khi nó nhận được thông báo đẩy.
Để tiết kiệm pin, các ứng dụng đang chạy trong tính năng này sẽ hoạt động vào những thời điểm nhất định, như khi thiết bị của bạn được kết nối với Wi-Fi, cắm vào một nguồn điện, hoặc dựa trên thói quen sử dụng ứng dụng đó của bạn. Nó cũng được “làm mới” khi thiết bị thường không hoạt động, như vào ban đêm, để giúp giữ cho các ứng dụng tự làm mới khi bạn không sử dụng máy. Ứng dụng cũng có thể lên lịch để “làm mới trong nền” dựa trên vị trí của bạn.
Dựa trên phiên bản trước đó của các tài liệu hỗ trợ, và cũng dựa trên ý nghĩa thông thường, điều này là “an toàn” để giả định rằng iOS đủ thông minh về cách thức mà nó làm mới các ứng dụng chạy nền, và nó sẽ không thiếu thận trọng khi cập nhật các ứng dụng đó trong cả ngày dài. Ví dụ, nó sẽ không liên tục làm mới news feed Facebook của bạn trong nền trong suốt cả ngày.
Nếu bạn quan tâm về vấn đề pin, cách tốt nhất là tắt tính năng chạy nền này với những ứng dụng mà bạn không sử dụng hoặc không quan tâm trong Cài đặt – Cài đặt chung – Làm mới ứng dụng trong nền (Settings > General > Background App Refresh). Cá nhân mình, mình đã tắt hầu hết khoảng 80% các ứng trên máy, mình chỉ bật nó với ứng dụng mình thật sự cần làm mới như Mail hay Twitter.
Vậy khi nào bạn nên thoát các ứng dụng chạy ngầm?
Về lý thuyết, bạn không bao giờ nên thoát các ứng dụng chạy ngầm. Trong thực tế, ý kiến này là hơi chủ quan bởi vì có những lúc bạn phải ép buộc thoát một ứng dụng, chẳng hạn như khi nó hoạt động không đúng, hoặc nếu nó bị crash. Ví dụ, mình luôn thoát ngầm ứng dụng Messenger và Skype, bởi vì mình tin rằng nó là thủ phạm gây tốn pin nhất. Tất nhiên trong trường hợp này, bạn chỉ nên thoát các ứng nào thật sự cần mà thôi. Đối với những thứ khác, bạn nên để cho iOS xử lý bởi vì đó là công việc của nó. Còn bạn chỉ việc sử dụng máy mà thôi.
Ý kiến của bạn sau khi đọc bài viết này thế nào? Có phải là từ nay bạn sẽ thay đổi thói quen thoát ứng dụng ngầm một cách thường xuyên như trước không? Đừng quên chia sẻ nó với bạn bè, những người trong gia đình đang sử dụng iPhone, iPad bài viết này, để họ có cái nhìn khách quan hơn về vấn đề này nhé.
Nguồn iDownloadBlog
Bình luận