Các ứng dụng iOS có chạy trong nền không?


15

Giả sử nếu tôi cài đặt hàng tá trò chơi và tiện ích trên iPhone, sau đó cũng cài đặt các ứng dụng trò chuyện như WhatsApp, WeChat, Line, thì

  1. Khi iPhone khởi động lại, tất cả các ứng dụng này có thể khởi động tốt và chiếm thời gian xử lý và tài nguyên hệ thống có giá trị không?

  2. Điều gì sẽ xảy ra nếu tôi khởi động một ứng dụng, sau đó nhấn đúp vào nút Home, sau đó trượt ứng dụng ra (để thoát ứng dụng ). Nó có thể hoặc một phần của nó vẫn chạy trong nền bây giờ hay sau này không?

  3. Vì các tin nhắn WhatsApp, WeChat, Line và Facebook đều thông báo cho tôi về các tin nhắn mới, nên có vẻ như chúng sẽ chạy ngay khi tôi khởi động lại iPhone. Có phải họ đang sử dụng CPU của tôi trong nền? Ngoài ra, có vẻ như ngay cả khi tôi tắt Ứng dụng Làm mới trong Cài đặt, các ứng dụng vẫn có thể chạy trong nền . Điều đó có đúng không?

Một mối quan tâm lớn là, nếu tôi cài đặt tất cả các biến thể của Angry Birds, một vài trò chơi roulette sòng bài và tất cả các phiên bản Cut the Rope và không cần phải xóa chúng (điện thoại có dung lượng lưu trữ 128GB). Sau đó, tất cả các ứng dụng này có thể chạy vào thời gian khởi động lại iPhone hay chỉ là ngẫu nhiên và chiếm thời gian của bộ xử lý và tài nguyên hệ thống (chẳng hạn như RAM)?


1
Tôi đã đăng một hướng dẫn rất dài về mọi thứ cần biết ở đây, tôi hy vọng nó thực sự giúp ích cho bạn!
Owlswipe

Câu trả lời của tôi có giúp được không? Hãy chấp nhận nó hoặc cho tôi biết những gì sai với nó để tôi có thể làm cho nó tốt hơn! :)
Owlswipe

Câu trả lời:


29

Apple có những hướng dẫn rất nghiêm ngặt về cách thức ứng dụng và khi các ứng dụng có thể chạy trong nền.

Sau đây là các tình huống duy nhất trong đó ứng dụng iOS của bên thứ ba có thể sử dụng CPU trong nền.

Tìm nạp nền

Bất kỳ ứng dụng nào cũng có thể sử dụng "Tải xuống nền" (còn gọi là làm mới ứng dụng nền) để tìm nạp nội dung trong nền trong vài giây, khoảng một lần một ngày (trên khung thời gian do iOS quy định, ngoài tầm kiểm soát của nhà phát triển). Tải xuống nền chiếm rất ít pin và CPU và chủ yếu được sử dụng bởi các ứng dụng tin tức / thời tiết / phương tiện truyền thông xã hội / thư để cập nhật nguồn cấp dữ liệu của bạn để khi bạn mở ứng dụng, nó sẽ không bị lỗi thời.

Âm thanh, Thoại qua IP, Giao tiếp Bluetooth

Nếu một ứng dụng phát âm thanh ở chế độ nền (qua AirPlay hoặc qua loa của điện thoại), iOS cho phép ứng dụng chạy ở chế độ nền cho đến khi ngừng phát nhạc; nếu một ứng dụng cho phép bạn thực hiện các cuộc gọi điện thoại dựa trên dữ liệu (như các cuộc gọi Whatsapp hoặc Skype) trong nền, thì ứng dụng đó có thể duy trì hoạt động, sử dụng CPU trong suốt thời gian của cuộc gọi; và nếu một ứng dụng giao tiếp với Phụ kiện Bluetooth (như ứng dụng Pebble giao tiếp với Đồng hồ thông minh Pebble), ứng dụng có thể tỉnh táo vĩnh viễn trong nền.

Tải thông tin, thông báo từ xa

Các ứng dụng Newsstand (miễn là chúng được Apple chấp thuận là một tổ chức tin tức lớn và hiển thị trong phần Newsstand của App Store) được phép tải xuống nội dung mới trong nền; bất kỳ ứng dụng nào (như ứng dụng Thời báo New York) cần hiển thị thông báo được tạo bên ngoài ứng dụng (ví dụ: ngắt thông báo tin tức), có thể tỉnh táo để nhận thông báo "từ xa" như vậy.

Cập nhật vị trí

Nếu bạn cho phép một ứng dụng "luôn luôn" sử dụng vị trí của bạn (tức là trong nền), thì ứng dụng đó có thể hoạt động bất cứ lúc nào trong nền. Các ứng dụng như Facebook, Tìm bạn bè và các ứng dụng khác sử dụng điều này để cập nhật thông tin liên quan đến vị trí, mặc dù các ứng dụng khác có thể sử dụng nó để lén lút sử dụng nó để thực hiện các tác vụ trong nền (nhưng chỉ khi bạn đặc biệt cho phép họ truy cập vị trí của bạn).


Một quan niệm sai lầm rất phổ biến là "vuốt lên" trên một ứng dụng để giết nó ngăn nó hoạt động ở chế độ nền: điều này hoàn toàn sai sự thật. Các ứng dụng có một trong bảy lý do trên để hoạt động ở chế độ nền có thể hoạt động ở chế độ nền bất kể bạn "vuốt lên" chúng và các ứng dụng không có một trong bảy lý do này không thể hoạt động khi chúng không hoạt động. trên màn hình ngay cả khi bạn không giết chúng.

Một quan niệm sai lầm khác (mà bạn dường như có!) Là việc tắt "Làm mới ứng dụng nền" sẽ ngăn ứng dụng hoạt động ở chế độ nền; thực tế, điều đó chỉ vô hiệu hóa một ứng dụng sử dụng Fetch nền, nhưng nó có thể hoạt động ở chế độ nền nếu nó có một trong sáu lý do khác bất kể chuyển đổi Làm mới ứng dụng nền.


Vì vậy, các ứng dụng bạn đã cài đặt bằng CPU, bộ nhớ, pin hoặc dữ liệu trong nền? Bạn có thể dễ dàng tìm ra! Đi đến Settingstrên iPhone của bạn, tìm Batteryphần và xem nhanh. Nếu một ứng dụng hiển thị "Hoạt động nền" dưới tên của nó, thì đó là ứng dụng đang sử dụng CPU trong nền; mặt khác, nó đã không làm bất cứ điều gì trong nền.

Dưới đây là một ảnh chụp màn hình ví dụ:

nhập mô tả hình ảnh ở đây

Trên iPhone này, Podcasts đã hoạt động ở chế độ nền nhưng không có ứng dụng nào khác có. Đi vào Cài đặt pin là một cách đơn giản để biết Angry Birds có đang chạy ẩn không.


Vì vậy, để trả lời câu hỏi của bạn trực tiếp:

Khi iPhone khởi động lại, tất cả các ứng dụng này có thể khởi động tốt và chiếm thời gian xử lý và tài nguyên hệ thống có giá trị không?

Chỉ khi chúng được định cấu hình cụ thể để chạy ở chế độ nền, bạn mới có thể kiểm tra xem chúng có đang làm điều đó trong cài đặt Pin của iPhone hay không.

Điều gì sẽ xảy ra nếu tôi khởi động một ứng dụng, sau đó nhấn đúp vào nút Home, sau đó trượt ứng dụng ra (để thoát ứng dụng). Nó có thể hoặc một phần của nó vẫn chạy trong nền bây giờ hay sau này không?

Đúng. Ví dụ: nếu Facebook sử dụng dịch vụ định vị (như hiện tại), thì việc vuốt lên để giết ứng dụng Facebook sẽ không ngăn ứng dụng sử dụng vị trí của bạn trong nền và trong khi sử dụng vị trí của bạn, nó có thể thực hiện bất kỳ nhiệm vụ nào khác trong nền quá.

Vì các tin nhắn WhatsApp, WeChat, Line và Facebook đều thông báo cho tôi về các tin nhắn mới, nên có vẻ như chúng sẽ chạy ngay khi tôi khởi động lại iPhone. Là sử dụng CPU của tôi trong nền? Ngoài ra, có vẻ như ngay cả khi tôi tắt Ứng dụng Làm mới trong Cài đặt, các ứng dụng vẫn có thể chạy trong nền. Điều đó có đúng không?

Whatsapp, WeChat, Line, Hangouts, FB Messenger và các ứng dụng trò chuyện khác sử dụng remote notificationskhả năng kiểm tra tin nhắn mới trong nền mỗi lần. Đây là hành vi được mong đợi (và bạn có thể kiểm tra xem họ đang thực hiện bao nhiêu bằng cách kiểm tra mức sử dụng pin của ứng dụng, một lần nữa trong cài đặt Pin) và không nên tiêu hao pin quá nhiều. Và thực tế, tắt Ứng dụng Làm mới cho các ứng dụng đó sẽ không có tác dụng gì, vì các ứng dụng sử dụng thông báo từ xa và không tìm nạp nền để hoạt động ở chế độ nền.


TL; DR: Ứng dụng có thể sử dụng tài nguyên điện thoại của bạn trong nền, bạn có thể thấy số lượng chúng đang hoạt động Settings-> Battery.


Nguồn thông tin:


2
nó khá tốt ... bạn có thể trích dẫn bất kỳ tài liệu tham khảo / nguồn nào về điều này không?
phân cực

2
@ 太極 者 無極 而 Tất cả thông tin đến từ kiến ​​thức cá nhân của tôi với tư cách là nhà phát triển iOS, nhưng tôi cũng đã thêm một số nguồn vào cuối câu trả lời của mình.
Owlswipe

1
Câu trả lời tuyệt vời. Là một mục nhỏ, Apple đã vô hiệu hóa các thông báo từ xa cho các ứng dụng bị đóng trong iOS 7. Nhưng vì những người bắt buộc đã loại bỏ tất cả các ứng dụng của họ phàn nàn về việc không nhận được thông báo, điều đó đã được đưa trở lại vào iOS 7.1 hoặc 7.2.

2
@Phong Tôi thích nó, tôi không biết điều đó! Cảm ơn: D.
Owlswipe

3
Bạn không chính xác về việc bỏ lực lượng không liên quan đến việc ứng dụng có thể sử dụng Thực thi nền hay không. Apple trên BE : "[iOS] không khởi chạy lại ứng dụng sau khi ... buộc người dùng thoát. Một ngoại lệ là ứng dụng định vị ... trong iOS 8 trở lên ... [Nếu không] người dùng phải khởi chạy [nó] một cách rõ ràng hoặc khởi động lại ... trước khi ứng dụng [sẽ được] tự động khởi chạy vào nền bởi [iOS]. "
tubedogg
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.