2011-11-21 15 views
6

WP7 में पृष्ठभूमि फ़ाइल स्थानांतरण का उपयोग करते समय मुझे यह समस्या है। जब मेरा एप्लिकेशन चल रहा है, यह पूरी तरह से काम करता है, लेकिन जैसे ही मैं विंडोज बटन पर क्लिक करता हूं, यह बंद हो जाता है (और जब मैं एप्लिकेशन को फिर से सक्रिय करता हूं तो फिर से शुरू होता है।) पृष्ठभूमि में चलाने के लिए पृष्ठभूमि फ़ाइल स्थानांतरण का उद्देश्य नहीं है, भले ही आपका आवेदन निष्क्रिय है? क्या इसे एक अलग वर्ग में होना चाहिए (कुछ प्रकार की पृष्ठभूमि एजेंट वर्ग, मुख्य परियोजना से अलग है?) वास्तव में निराशाजनक, जब मैं यहां सब कुछ कर रहा हूं तो ट्यूटोरियल कहता है: http://msdn.microsoft.com/en-us/library/hh202959(v=vs.92).aspxपृष्ठभूमि फ़ाइल स्थानांतरण समस्याएं

क्या कुछ "विशेष" चीजें हैं जो मुझे यह सुनिश्चित करने के लिए करने की ज़रूरत है कि यह पृष्ठभूमि में चलता है, या कुछ तरीकों से हो सकता है, हो सकता है कि मैंने स्वयं बनाया है (यूआरएल प्राप्त करने के लिए), जिसे एक्सेस नहीं किया जा सकता है निष्क्रिय? निष्क्रिय होने पर मैं कतार में नहीं जोड़ सकता, शायद?

धन्यवाद आपके समय के लिए एक बहुत :)

संपादित करें: एक छोटी सी डिबगिंग मुझसे कहता है कि कतार में फ़ाइल वास्तव में डाउनलोड कर रहा है। यह समाप्त हो जाता है, लेकिन जब तक मैं ऐप को पुनः सक्रिय नहीं करता तब तक यह अगले को नहीं लाता है। क्या ऐसा करने पर मैं अपने तरीके, चर आदि का उपयोग नहीं कर सकता? हो सकता है कि मेरे पास 20 आइटमों के लिए एक आंतरिक कतार है। फिर जब यह शून्य हो जाता है तो मैं डाउनलोड कतार (अधिकतम 5) कैसे बना सकता हूं?

EDIT2: Microsoft से नमूने में, वे कहते हैं कि आप बाद में कतार में जोड़ सकते हैं:

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

लेकिन अगर हम पृष्ठभूमि में है या नहीं यह कर सकते हैं, जबकि यह कहना नहीं है। चूंकि यह पृष्ठभूमि फ़ाइल स्थानांतरित करने के बारे में है, इसलिए उन्हें इसका उल्लेख करना चाहिए था, अन्यथा हमें यह मानना ​​चाहिए कि यह पृष्ठभूमि में किया जा सकता है, जो ऐसा नहीं लगता है। लेकिन हम उसे नहीं जानते। कोई भी जो इस 100% की पुष्टि कर सकता है?

उत्तर

3

मैंने इसे भी देखा है और अधिकतम के बाद कतार को पॉप्युलेट करने के लिए यह संभव नहीं है (मेरे शोध के आधार पर)। 5 कतार डाउनलोड समाप्त हो गया है। मैंने पृष्ठभूमि एजेंट का उपयोग करने के बारे में सोचा लेकिन BackgroundTransferRequest.Add पृष्ठभूमि एजेंटों से अनुपलब्ध है जिसका अर्थ है कि आपका ऐप चल रहा है, तो अधिक डाउनलोड कतार का एकमात्र तरीका है (Unsupported APIs for Background Agents for Windows Phone देखें)।

एकमात्र चीज जिसे मैं सोच सकता हूं, एक टोस्ट अधिसूचना भेजने के लिए पृष्ठभूमि एजेंट का उपयोग कर रहा है ताकि उपयोगकर्ता को यह पता चल सके कि डाउनलोड समाप्त हो गए हैं और उन्हें अगले पांच डाउनलोड कतार में ऐप शुरू करना चाहिए। यह आदर्श से कम है।

+0

उत्तर के लिए धन्यवाद। यह मूल रूप से मैंने जो भी पाया है, और यह बिल्कुल भी पर्याप्त नहीं है। मुझे लगता है कि ऐसा करने का दूसरा तरीका होना चाहिए, किसी और ने इसमें देखा और शायद एक समाधान मिला? – kgrevehagen

संबंधित मुद्दे