2012-03-08 16 views
9

मेरे पास एक ऐसा एप्लिकेशन है जिसके लिए स्थान ट्रैकिंग की आवश्यकता है और मुझे लगता है कि यह स्वीकार्य पृष्ठभूमि मॉडल में से एक के भीतर स्क्वायरली फिट बैठता है। हालांकि, स्थान के महत्वपूर्ण परिवर्तन होने पर मुझे नेटवर्क सेवा पर पोस्ट करने की आवश्यकता है। मैंने लेखन-अप देखा है कि पृष्ठभूमि प्रसंस्करण में राज्य नेटवर्क पहुंच प्रतिबंधित है, लेकिन मैंने इसे ऐप्पल के दस्तावेज़ों में नहीं पढ़ा।आईओएस पृष्ठभूमि अनुप्रयोग नेटवर्क का उपयोग

क्या किसी को पता है कि यह पृष्ठभूमि प्रक्रिया में कभी-कभी और बहुत तेज़ नेटवर्क अपडेट करने के लिए कोशेर (wrt Apple नीतियां) है?

उत्तर

11

अच्छा बिंदु, Apple documentation केवल निम्न उपयोगों के लिए पृष्ठभूमि में अनुमति दी जाती है और प्रत्येक सेवा के लिए पंजीकृत होना चाहिए के अनुसार:

  • ऑडियो-ऐप करते समय पृष्ठभूमि में उपयोगकर्ता के लिए श्रव्य सामग्री निभाता है। (इस सामग्री में एयरप्ले का उपयोग कर ऑडियो या वीडियो सामग्री स्ट्रीमिंग शामिल है।)
  • स्थान-ऐप उपयोगकर्ताओं को पृष्ठभूमि में चलते समय भी उनके स्थान के बारे में सूचित करता है।
  • वीओआईपी-ऐप उपयोगकर्ता को इंटरनेट कनेक्शन का उपयोग करके फोन कॉल करने की क्षमता प्रदान करता है।
  • न्यूज़स्टैंड-सामग्री-ऐप एक न्यूजस्टैंड ऐप है जो पृष्ठभूमि में पत्रिका या समाचार पत्र सामग्री को डाउनलोड और संसाधित करता है।
  • बाहरी-एक्सेसरी-ऐप एक हार्डवेयर सहायक के साथ काम करता है जिसे बाहरी एक्सेसरी फ्रेमवर्क के माध्यम से नियमित शेड्यूल पर अपडेट वितरित करने की आवश्यकता होती है।
  • ब्लूटूथ-सेंट्रल- ऐप ब्लूटूथ एक्सेसरी के साथ काम करता है जिसे कोरब्लूटूथ फ्रेमवर्क के माध्यम से नियमित शेड्यूल पर अपडेट वितरित करने की आवश्यकता होती है।

इस सेवाओं के अलावा, आप पृष्ठभूमि में एक परिमित-लंबाई टास्क है कि वास्तव में आप संभावना एक नेटवर्क प्रक्रिया समाप्त करने के लिए दे बना सकते हैं।

यह महत्वपूर्ण है कि आपके ऐप में कुछ महत्वपूर्ण कार्य प्रदर्शन कर रहा है हो सकता है, इस तरह के डिस्क के लिए उपयोगकर्ता डेटा लेखन या नेटवर्क सर्वर से एक महत्वपूर्ण फ़ाइल डाउनलोड करने के रूप में।

अपने प्रश्न के संबंध में, यदि आप पृष्ठभूमि में चल रहे स्थान सेवा के लिए त्वरित नेटवर्क कनेक्शन कर सकते हैं या नहीं कर सकते हैं तो यह वास्तव में स्पष्ट नहीं है।मैं एक संक्षिप्त कनेक्शन के लिए हाँ कहूंगा, लेकिन पूरी तरह से सुनिश्चित नहीं है। आईओएस 4.0 के बाद से इस उपयोग को दस्तावेज़ीकरण में अस्वीकार कर दिया गया था और अब यह हिस्सा हटा दिया गया है।

2

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

नहीं यदि आपका ऐप वीओआईपी, संगीत या जीपीएस श्रेणी में नहीं आता है; तो आप पृष्ठभूमि में नहीं चला सकते हैं।

अधिक यहाँ: Update my app when it is in background


आप ASIHTTPRequest इस्तेमाल कर सकते हैं।

ASIHTTPRequest एक संपत्ति setShouldContinueWhenAppEntersBackground: है। डिफ़ॉल्ट NO है, आप YES चालू कर सकते हैं ताकि आपके पास पृष्ठभूमि नेटवर्क प्रक्रिया हो।

+0

Thx। स्पष्टीकरण के लिए, प्रश्न वास्तव में है कि पृष्ठभूमि में चलते समय ऐप्पल नेटवर्क पहुंच की अनुमति देता है या नहीं। – michael

+0

मैंने अपना जवाब अपडेट कर लिया है। – HelmiB

+0

फिर से Thx, लेकिन लिंक वास्तव में मेरे प्रश्न का उत्तर नहीं देता है - यह मौजूदा नेटवर्क अनुरोध को खत्म करने के बारे में अधिक है। मैं पृष्ठभूमि में अनिश्चित काल तक दौड़ना चाहता हूं और कभी-कभी नेटवर्क अनुरोध करता हूं (मान लें कि प्रति घंटा 1000 बाइट्स भेजें)। यह बैकग्राउंड ऐप में * नेटवर्क * एक्सेस के आसपास ऐप्पल पॉलिसी का सवाल है। – michael

1

ऐप्पल दस्तावेज सख्त नीति पर थोड़ा अस्पष्ट लगता है। ऐप स्टोर में निश्चित रूप से एप्लिकेशन हैं जो स्थान-आधारित एप्लिकेशन के रूप में पृष्ठभूमि में चलते समय स्पोराडिक नेटवर्क कॉल करते हैं। एक उदाहरण Geoloqi आवेदन है।