2012-03-08 58 views
9

Tôi có một ứng dụng yêu cầu theo dõi vị trí và tôi cho rằng ứng dụng đó phù hợp với một trong các mô hình nền được phép. Tuy nhiên, tôi cần đăng lên dịch vụ mạng khi có thay đổi đáng kể về vị trí. Tôi đã nhìn thấy các bản ghi rằng truy cập mạng trạng thái bị cấm trong xử lý nền, nhưng tôi đã không đọc nó trong tài liệu của Apple.Truy cập mạng ứng dụng nền iOS

Có ai biết nếu đó là kosher (chính sách của Apple) để thực hiện cập nhật mạng không thường xuyên và rất nhanh trong một quá trình nền?

Trả lời

11

Tốt điểm, theo Apple documentation chỉ các tập quán sau đây được phép ở chế độ nền và mỗi dịch vụ cần được đăng ký:

  • nghe Ứng dụng đóng nội dung âm thanh để người dùng trong khi ở chế độ nền. (Nội dung này bao gồm phát trực tuyến nội dung âm thanh hoặc video bằng AirPlay.)
  • vị trí — Ứng dụng giúp người dùng thông báo về vị trí của họ ngay cả khi đang chạy ở chế độ nền.
  • voip — Ứng dụng cung cấp khả năng cho người dùng thực hiện cuộc gọi điện thoại bằng kết nối Internet.
  • newsstand-content — Ứng dụng là ứng dụng Newsstand tải xuống và xử lý nội dung tạp chí hoặc báo trong nền.
  • phụ kiện bên ngoài — Ứng dụng hoạt động với phụ kiện phần cứng cần phân phối cập nhật theo lịch thông thường thông qua khung phụ kiện Bên ngoài .
  • bluetooth-central — Ứng dụng hoạt động với phụ kiện Bluetooth cần phân phối cập nhật theo lịch thường xuyên thông qua khung công tác Core2luetooth .

Khác với dịch vụ này, bạn có thể tạo ra một tác hữu hạn-Length trong nền mà thực sự cung cấp cho bạn khả năng để kết thúc một quá trình mạng.

Đây có thể là quan trọng nếu ứng dụng của bạn được thực hiện một số nhiệm vụ quan trọng, như ghi dữ liệu người dùng vào đĩa hoặc tải một tập tin quan trọng từ một máy chủ mạng.

Về câu hỏi của bạn, nó không thực sự rõ ràng nếu bạn có thể hoặc không có thể thực hiện kết nối mạng nhanh nếu bạn có dịch vụ vị trí chạy ẩn.Tôi sẽ nói CÓ cho một kết nối ngắn, nhưng không hoàn toàn chắc chắn. Kể từ iOS 4.0, việc sử dụng này đã bị từ chối và rõ ràng trong tài liệu, bây giờ phần đó đã bị xóa.

2

nếu bạn sử dụng nền để kết nối nhanh chóng. Apple sẽ không cho phép bạn chạy trong nền như bạn muốn.

NO Nếu ứng dụng của bạn không thuộc danh mục Voip, âm nhạc hoặc GPS; thì bạn không thể chạy ở chế độ nền.

thêm ở đây: Update my app when it is in background


Bạn có thể sử dụng ASIHTTPRequest.

ASIHTTPRequest có thuộc tính setShouldContinueWhenAppEntersBackground:. mặc định là NO, bạn có thể bật YES để bạn có quy trình mạng nền.

+0

Thx. Để làm rõ, câu hỏi thực sự là liệu Apple có cho phép truy cập mạng khi chạy ở chế độ nền hay không. – michael

+0

Tôi đã cập nhật câu trả lời của mình. – HelmiB

+0

Thx lần nữa, nhưng liên kết không thực sự trả lời câu hỏi của tôi - đó là nhiều hơn về việc hoàn thành một yêu cầu mạng hiện có. Tôi muốn chạy vô thời hạn trong nền và thực hiện yêu cầu mạng không thường xuyên (giả sử gửi 1000 byte theo giờ). Đó là một câu hỏi về chính sách của Apple xung quanh * truy cập mạng * trong các ứng dụng nền. – michael

1

Tài liệu của Apple có vẻ hơi không rõ ràng về chính sách nghiêm ngặt. Có các ứng dụng chắc chắn trong cửa hàng ứng dụng thực hiện các cuộc gọi mạng lẻ tẻ khi chạy trong nền dưới dạng ứng dụng dựa trên vị trí. Một ví dụ là ứng dụng Geoloqi.

Các vấn đề liên quan