2011-11-21 22 views
6

WP7'de Arka Plan Dosya Aktarımı kullanırken bu problemi yaşıyorum. Uygulamam çalışırken mükemmel çalışır, ancak Windows düğmesini tıklatır tıklamaz durur (ve uygulamayı yeniden etkinleştirdiğimde devam eder.) Arka planda çalışacak şekilde Arkaplan Dosya Aktarımı'nın amacı, uygulama devre dışı bırakıldı mı? Ayrı bir sınıfta olması gerekiyor mu (ana projeden ayrı bir çeşit arka plan ajan sınıfı?) Öğreticinin söylediği her şeyi yaptığımda gerçekten sinir bozucu: http://msdn.microsoft.com/en-us/library/hh202959(v=vs.92).aspx.Arka plan Dosya aktarımı sorunları

Arka planda çalıştığından emin olmak için yapmam gereken bazı "özel" şeyler veya bazı yöntemler, belki de kendim tarafından oluşturduğum (url'yi almak için) vb. devreden? Devre dışı bırakılırken sıraya ekleyemiyorum, belki?

teşekkürler kez bir sürü :)

DÜZENLEME: Küçük bir hata ayıklama kuyrukta dosya aslında indirdiğini söylüyor. Bitirdi, ancak uygulamayı yeniden etkinleştirene kadar bir sonrakini almaz. Bunu yaparken kendi yöntemlerimi, değişkenlerimi vs kullanamıyorum? Belki 20 maddelik bir iç sıraya sahibim. Bu sıfıra ulaştığında indirme sırasını nasıl (maksimum 5) doldurabilirim?

EDIT2:

// 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; 
} 

Ama biz arka planda veya olmasın bu süre yapabileceği eğer demiyor: Microsoft'tan örnekte, onlar daha sonra kuyruğa ekleyebilir söylüyorlar. Arka plan dosya aktarımı ile ilgili olduğundan, bundan bahsetmeliydiler, aksi durumda arka planda yapılabileceğini varsaymalıyız, ki böyle görünmüyor. Ama bunu bilmiyoruz. Bunu% 100 onaylayan var mı?

cevap

3

Bunu da inceledim ve kuyruğu maks. 5 kuyrudan indirme işlemi tamamlandı. Bir arka plan aracısı kullanmayı düşündüm ama BackgroundTransferRequest.Add, uygulamanız çalışırken (bkz. Unsupported APIs for Background Agents for Windows Phone) daha fazla indirmenin sıralanmasının tek yolu anlamına gelen arka plan ajanlarından yararlanamamaktadır.

Düşünebildiğim tek şey, kullanıcılara indirmelerin bittiğini bildiren bir toast bildirimi göndermek için bir arka plan aracı kullanmak ve uygulamayı beş sonraki kuyruğu sıralamak için uygulamayı başlatmalarıdır. Bu idealden daha az.

+0

Cevabınız için teşekkür ederiz. Bu temel olarak benim de öğrendiğim şey, ve bu hiç de yeterli değil. Bunu yapmanın başka bir yolu olmalı diye düşünürüm, başka biri buna baktı ve belki bir çözüm buldu? – kgrevehagen