2012-05-19 37 views
5

Tôi đang viết ứng dụng cho khách hàng nơi người dùng sẽ nhập dữ liệu trong ngày, sau đó tại một điểm nhất định vào ban đêm (ví dụ: vào nửa đêm) dữ liệu của người dùng ngày đó nên tải lên máy chủ.Lập lịch nhiệm vụ ứng dụng iOS để chạy trong khi ở chế độ nền

Vì vậy, tôi cần lên lịch một phương thức để chạy trên ứng dụng của mình vào lúc nửa đêm, ngay cả khi ứng dụng đang chạy ẩn. Phương pháp này sau đó sẽ đồng bộ dữ liệu đã thu thập với máy chủ và tải xuống bất kỳ thay đổi nào.

Để đạt được điều này, tôi tưởng tượng tôi cần đặt ứng dụng luôn chạy ở chế độ nền (tức là dài hơn 10 phút), sau đó lên lịch để chạy sau một thời gian cụ thể. Tôi có làm điều này bằng cách sử dụng performSelector: withDelay: không? Hay tôi cần thứ gì đó mạnh mẽ hơn vì ứng dụng sẽ ở chế độ nền?

Xin cảm ơn các bạn!

+0

Bạn có nhận được giải pháp nào cho điều này không? –

Trả lời

0

Tôi không nghĩ rằng ứng dụng của bạn hoặc những gì bạn đang cố gắng làm là đủ điều kiện cho yêu cầu của Apple đối với tác vụ nền chạy dài. Xem phần "Triển khai tác vụ nền chạy dài" trong tài liệu này từ Apple.

+0

Đó là một điểm tốt - nhưng thực sự ứng dụng có thể đủ điều kiện để theo dõi vị trí liên tục. Lý do cho việc đồng bộ hóa dữ liệu nửa đêm là bởi vì trong ngày người dùng có khả năng ở bên ngoài kết nối internet. Vì vậy, có lẽ tùy chọn tốt nhất sẽ theo dõi các thay đổi vị trí chính và tại mỗi lần kiểm tra thay đổi đối với kết nối internet. Nếu người dùng có tín hiệu đủ mạnh, đồng bộ hóa có thể bắt đầu ở đó, sau đó tắt đồng bộ hóa dữ liệu cho đến ngày hôm sau. Cảm ơn đã giúp đỡ! – theDuncs

2

Bạn có thể xem UILocalNotifications. Bạn có thể lên lịch cho sự kiện đó xảy ra và sau đó đặt biểu tượng huy hiệu để cho người dùng biết rằng nó đã xử lý thứ gì đó (hoặc không).

Thông tin về các HERE

+0

Tôi không muốn người dùng biết bất cứ điều gì về đồng bộ dữ liệu, vì vậy lý tưởng tôi sẽ (a) lên lịch thông báo địa phương cho nửa đêm, sau đó (b) vào lúc nửa đêm khi mã thông báo chạy, tôi có thể thực hiện đồng bộ hóa dữ liệu rồi KHÔNG tăng bất kỳ thông báo nào trên màn hình. Điều này nghe có khả thi không? Hoặc để sử dụng thông báo cục bộ, tôi có phải tăng cảnh báo trên màn hình không? – theDuncs

+0

Cảm ơn sự giúp đỡ của bạn, nhân tiện! Nhiều đánh giá cao. – theDuncs

+0

Tôi nghĩ bạn có thể làm những gì bạn đang cố gắng làm mà không có chỉ báo trực quan cho người dùng. –

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