मैं एक ऐप सेट अप करने की कोशिश कर रहा हूं जो पृष्ठभूमि में लोगों के स्थानों की जांच करने में सक्षम होगा, देखें कि वे किसी दिए गए स्थान पर हैं या नहीं, और अगर वे हैं तो एक सर्वर को एक पिंग भेजें। हम अपने उपयोगकर्ताओं की ऊर्जा को निकालना नहीं चाहते हैं, इसलिए हम सबसे अच्छे समाधान को समझने का प्रयास कर रहे हैं।CLLocationManager geo-fencing/startMonitoringForRegion: vs. startMonitoringForSignificantLocationChanges: बनाम 10 मिनट की शुरुआत कॉल अपडेट करना
मैंने काफी पढ़ा है और मुझे इन तरीकों पर बहुत अधिक जानकारी नहीं मिली है। मैं के रूप में मैं उन्हें अभी समझ में
startMonitoringForSignificantChanges पक्ष-विपक्ष के बुनियादी अपग्रेड
विवरण: वाई-फाई और सेल टॉवर के आधार पर बदल जाता है सिस्टम एप्लिकेशन जाग।
Docs: डिवाइस अपने पिछले नोटिफिकेशन से 500 मीटर या उससे अधिक ले जाता है के रूप में
Apps के रूप में जल्द ही एक अधिसूचना उम्मीद कर सकते हैं। यह अधिसूचनाओं की अपेक्षा नहीं करनी चाहिए, हर पांच मिनट में एक बार से अधिक बार। यदि डिवाइस नेटवर्क से डेटा पुनर्प्राप्त करने में सक्षम है, तो स्थान प्रबंधक पर समय-समय पर अधिसूचनाएं वितरित करने की अधिक संभावना है।
सकारात्मक:
- अधिकांश बैटरी कुशल
विपक्ष:
वाई-फाई/सेल टॉवर पर- निर्भर बदलता है
- केवल मान सकते हैं कि यह हो जाएगा प्रत्येक 200 मीटर से 2 किमी (यदि कुछ क्षेत्रों में अधिक नहीं है) कहा जाता है
- More on accuracy
- इस प्रकार, असंगत और अनिश्चित
10-minute start-updating या "n मिनट अद्यतन करने":
विवरण: यह मूल रूप से, और अधिक समय के लिए एप्लिकेशन पूछता है कि अतिरिक्त समय के बारे में है समाप्त होने के लिए, यह [self.locationManager startUpdating] को कॉल करता है, स्थान पकड़ता है और पृष्ठभूमि धागे को 10 और मिनट तक बढ़ाता है।
सकारात्मक:
- अनुरूप
- के रूप में सही रूप में आप इसे के रूप में लगातार आप यह चाहते हैं
विपक्ष होना चाहते हो सकता है:
- क्या करना है ऐप को पृष्ठभूमि में चलाने के लिए प्रत्येक दस मिनट या उससे कम कॉल (यानी n कॉल के लिए 10 से अधिक नहीं हो सकता है)
प्रश्न: बैटरी पर इसका क्या प्रभाव पड़ता है? क्या जीपीएस जाग रहा है और इसे बंद कर बैटरी को और अधिक चोट पहुंचाता है? मैं कल्पना नहीं कर सकता था कि पृष्ठभूमि में एक संक्षिप्त स्थान जांच चलाने से बैटरी बहुत अधिक हो जाएगी ... लेकिन फिर, मुझे नहीं पता कि जीपीएस को पावर करने और उपयोग करने योग्य संकेत प्राप्त करने में क्या होता है।
startMonitoringForRegion (भू-बाड़ लगाने):
सीधे शब्दों में कहें, तो आपका ऐप उठ हो जाता है जब आप एक पूर्व निर्धारित क्षेत्र में दर्ज करें। यह उनकी अजीब बात है, यह हाल ही में है और इसमें कम दस्तावेज है। मुझे सीमा पार करने "सिस्टम मॉनीटर" कैसे एक अच्छा विवरण नहीं मिल रहा है। सभी के लिए मुझे पता है कि यह वास्तव में कुछ स्मार्ट एल्गोरिदम है, या वे लगातार जीपीएस पिंग कर रहे हैं जो इसे करने के लिए अन्य तरीकों से कम प्रभावी बना देगा।
सकारात्मक:
- सरल कार्यान्वयन
- प्रणाली द्वारा प्रबंधित ताकि आप अपने आविष्कार करने के लिए तदर्थ भू-बाड़ केवल सीमा पार करने पर चलाता है ... कोई अनावश्यक डेटा बस फेंक की जरूरत नहीं है बाहर एक बैटरी के बदले में मारा
- इस प्रकार, बात है, सही की इस तरह, सिस्टम द्वारा प्रबंधित
विपक्ष के लिए सबसे अच्छा होना चाहिए:
चाहे या नहीं यह बैटरी जीवन के लिए अच्छा है पर या अगर बहुत यह नालियों बैटरी जीवन- People question its effectiveness
- विशाल विरोध करता है।
- सिस्टम इसकी निगरानी कैसे कर रहा है !?
- असल में, अनिश्चित व्यवहार। पृष्ठभूमि में परीक्षण उपयोगकर्ता स्थान के इन अन्य तरीकों की तुलना में जब यह बैटरी जीवन, स्थिरता, और परिशुद्धता की बात आती है:
मैं अपने सवाल यह है कि करता है startMonitoringForRegion करने पर निर्भर करता है लगता है। क्या किसी ने इसका पूरी तरह से परीक्षण किया है? या इसे अपने ऐप में इस्तेमाल किया और कम से कम कुछ फीडबैक प्राप्त किया? संभावना है कि, मेरे उद्देश्यों के लिए, व्यापार-बंद भू-बाड़ लगाने और 10 मिनट की अद्यतन विधि के बीच है। (आईओएस 7 के बारे में ऐप्पल ने सार्वजनिक रूप से जो कहा है, उसके अलावा कुछ पृष्ठभूमि कार्य भी होंगे ... क्या यह इन दो तरीकों के बीच व्यापार-बंद के लिए गणित को बदल देगा?) क्या किसी के पास यह विचार है कि इन दोनों की तुलना कैसे की जाती है?
बहुत बहुत धन्यवाद! यह देखने के लिए तत्पर हैं कि क्या हम इन तरीकों की तुलना करने के तरीके के नीचे पहुंच सकते हैं।
+1 एक साफ सिंहावलोकन के लिए –