2011-11-21 38 views
6

Tôi gặp sự cố này khi sử dụng Truyền Tệp Nền trong WP7. Nó hoạt động hoàn hảo khi ứng dụng của tôi đang chạy, nhưng ngay sau khi tôi nhấp vào nút Windows, nó dừng lại (và tiếp tục lại khi tôi kích hoạt lại ứng dụng.) Không phải là mục đích của Truyền tệp nền chạy trong nền, ngay cả khi bạn ứng dụng bị hủy kích hoạt? Liệu nó có phải là trong một lớp riêng biệt (một số loại lớp nhân viên nền, tách biệt khỏi dự án chính?) Thực sự bực bội, khi tôi làm tất cả những gì hướng dẫn ở đây nói: http://msdn.microsoft.com/en-us/library/hh202959(v=vs.92).aspx.Vấn đề về Chuyển Tệp Nền

Có một số thứ "đặc biệt" tôi cần làm để đảm bảo chạy trong nền hoặc một số phương pháp, có thể là phương pháp do chính tôi tạo (để lấy url, v.v.), không thể truy cập được trong khi đã hủy kích hoạt? Tôi có thể không thêm vào hàng đợi trong khi không hoạt động được không?

Cảm ơn rất nhiều thời gian của bạn :)

EDIT: Một gỡ lỗi nhỏ nói với tôi rằng các tập tin trong hàng đợi là thực sự tải về. Nó được hoàn thành, nhưng nó không lấy cái tiếp theo cho đến khi tôi kích hoạt lại ứng dụng. Tôi không thể sử dụng các phương pháp, biến số của riêng mình, vv khi thực hiện điều này? Có lẽ tôi có một hàng đợi nội bộ cho, nói rằng, 20 mặt hàng. Làm thế nào tôi có thể sau đó điền vào hàng đợi tải xuống (tối đa 5) khi điều này được bằng không?

EDIT2: Trong mẫu từ Microsoft, họ nói rằng bạn có thể thêm vào hàng đợi tại một thời điểm sau:

// Check to see if the maximum number of requests per app has been exceeded. 
if (BackgroundTransferService.Requests.Count() >= 5) 
{ 
// Note: Instead of showing a message to the user, you could store the 
// requested file URI in isolated storage and add it to the queue later. 
MessageBox.Show("The maximum number of background file transfer requests for this application has been exceeded. "); 
return; 
} 

Nhưng nó không nói nếu chúng ta có thể làm điều này trong khi ở chế độ nền hay không. Vì nó là về chuyển tập tin nền, họ nên đã đề cập đến nó, nếu không chúng ta nên giả sử nó có thể được thực hiện trong nền, mà dường như không phải là trường hợp. Nhưng chúng ta không thể biết điều đó. Bất cứ ai có thể xác nhận điều này 100%?

Trả lời

3

Tôi cũng đã xem xét điều này và không thể (dựa trên nghiên cứu của tôi) để điền hàng đợi sau giá thầu CPC 5 lượt tải xuống đã hoàn tất. Tôi đã nghĩ đến việc sử dụng tác nhân nền nhưng BackgroundTransferRequest.Add không có sẵn từ các tác nhân nền nghĩa là cách duy nhất để xếp hàng nhiều lượt tải xuống hơn là khi ứng dụng của bạn đang chạy (xem Unsupported APIs for Background Agents for Windows Phone). Điều duy nhất tôi có thể nghĩ là sử dụng tác nhân nền để gửi thông báo bánh mì nướng cho người dùng biết rằng tải xuống đã hoàn tất và họ nên bắt đầu ứng dụng để xếp hàng năm lần tải xuống tiếp theo. Điều này là ít hơn lý tưởng.

+0

Cảm ơn bạn đã trả lời. Đó là về cơ bản những gì tôi đã phát hiện ra là tốt, và đó là không đủ ở tất cả. Tôi giả sử phải có một cách khác để làm điều này, bất cứ ai khác nhìn vào điều này và có thể tìm thấy một giải pháp? – kgrevehagen

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