2012-05-20 15 views
14

मैं अपने एप्लिकेशन को पृष्ठभूमि में कैसे चला सकता हूं? क्या मुझे ऐसा करने के लिए अपने आईफोन को जेलबैक करना होगा? मुझे बस अपने ऐप के लिए हर सेट अंतराल पर इंटरनेट से कुछ जांचने और आवश्यकता होने पर सूचित करने के लिए इस ऐप की आवश्यकता है।आईओएस: पृष्ठभूमि में चल रहे एप्लिकेशन को रखें

+0

हाय डेनिस उम्मीद है कि आपको अपना जवाब मिल गया है। यदि हां, तो क्या आप अपने संबंधित उत्तर को सत्य और ऊपर वोट के रूप में चिह्नित कर सकते हैं ... – Mrunal

उत्तर

17

हां, भागने की कोई आवश्यकता नहीं है। इस दस्तावेज़ के Apple से "लंबे समय तक चलने वाले पृष्ठभूमि कार्यों को कार्यान्वित करना" अनुभाग देखें।

एप्पल डॉक से: को अपने ऐप्लिकेशन के समर्थित पृष्ठभूमि कार्य पृष्ठभूमि निष्पादन के कुछ प्रकार के लिए

समर्थन उन्हें का उपयोग करता है एप्लिकेशन द्वारा पहले से घोषित किया जाना चाहिए की घोषणा। एक ऐप अपनी Info.plist फ़ाइल का उपयोग कर किसी सेवा के लिए समर्थन की घोषणा करता है। UIBackgroundModes कुंजी को अपनी Info.plist फ़ाइल में जोड़ें और उसके मान को एक या अधिक स्ट्रिंग वाले सरणी में सेट करें: (ऊपर वर्णित लिंक से ऐप्पल का दस्तावेज़ देखें।)

+4

क्या यह विधि 24 x 7 - हमेशा के लिए काम करेगी? – takrishna

+1

@takrishna, अगर आप अपने ऐप के लिए इस ऐप को लिख रहे हैं, तो UIBackgroundModes वैल्यू "वीओआईपी" (वॉयस ओवर आईपी) सेट करें। पृष्ठभूमि में हमेशा के लिए जीवित रखने के लिए यह सबसे आसान प्रकार का ऐप है। (लेकिन इसे ऐप स्टोर में सबमिट न करें, जब तक कि यह वास्तव में एक वीओआईपी ऐप न हो।) – ToolmakerSteve

+0

ऐप स्टोर ऐप के लिए, यदि आपके पास समय-समय पर आपके फोन पर "रिमोट नोटिफिकेशन" भेजने के लिए कोई सर्वर नहीं है, तो आपका एकमात्र अन्य विकल्प "पृष्ठभूमि लाने" है। http://stackoverflow.com/a/37311611/199364 – ToolmakerSteve

-1

आप पहले से ही ऐसा करने की applicationDidEnterBackground विधि

+0

मैंने सोचा कि ऐप स्वचालित रूप से कुछ अवधि के बाद समाप्त हो जाएगा, है ना? अगर मैं गलत हूं तो मेरी अज्ञानता को क्षमा करें। मैं आईओएस प्रोग्रामिंग के लिए बहुत नया हूँ। – Dennis

+0

जब तक आईओएस को किसी अन्य ऐप के लिए उस मेमोरी की आवश्यकता न हो, तब तक यह नहीं होगा, और जब तक आप पृष्ठभूमि में कुछ कर रहे हैं – user1320885

+5

नहीं। कुछ निश्चित स्थितियों को छोड़कर, एप्लिकेशन 10 मिनट से अधिक समय तक पृष्ठभूमि में नहीं चल सकते हैं (वीओआईपी, ऑडियो खेलना आदि) – Greg

5

उपयोग स्थानीय सूचनाओं में यह कर सकते हैं। लेकिन यह हर बार जांच नहीं करेगा। आपको एक समय निर्धारित करना होगा जहां आप अपना विशिष्ट कार्यक्रम देखेंगे, आप अपना समय स्लॉट कम करके इसे छोटा कर सकते हैं। स्थानीय अधिसूचना के बारे में और अधिक पढ़ें पता है कि कैसे में इस लक्ष्य को हासिल करने के लिए:

http://developer.apple.com/library/mac/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Introduction/Introduction.html

+0

नहीं, अगर ऐप पृष्ठभूमि में है, तो स्थानीय अधिसूचना जो भी करेगी वह उपयोगकर्ता को अधिसूचना दिखाती है। जब तक उपयोगकर्ता ऐप को अग्रभूमि में लाने के लिए अधिसूचना पर क्लिक नहीं करता तब तक आप कोई वास्तविक कार्य नहीं कर सकते। – ToolmakerSteve

3

मुझे पता है कि यह आपके प्रश्न का उत्तर नहीं है , लेकिन मुझे लगता है कि यह एक समाधान है।

यह मानता है कि आप नियमित रूप से कुछ जांचने या इंटरनेट से डेटा प्राप्त करने का प्रयास कर रहे हैं?

ऐसी सेवा बनाएं जो इंटरनेट के हर सेट अंतराल को जो कुछ भी आप जानना चाहते हैं, उसे जांचें, और यदि आप नीचे हैं, या जो कुछ भी मॉनिटर करने की कोशिश कर रहा है, उसे चेतावनी देने के लिए पुश अधिसूचना बनाएं राज्य। एक विचार है।

1

हाँ आप ऐसा कुछ कर सकते हैं। इसके लिए आपको os को यह बताने के लिए info.plist में प्रविष्टि सेट करने की आवश्यकता है कि मेरा ऐप पृष्ठभूमि में चलाएगा। मैंने यह किया है जबकि मैं सर्वर पर विशेष समय टिकट के बाद उपयोगकर्ता के स्थान को पास करना चाहता था। इसके लिए मैंने "आवश्यक पृष्ठभूमि मोड" को "स्थान अपडेट के लिए ऐप रजिस्ट्रार" पर सेट किया है।

आप यूआईबैकग्राउंड टास्कइडेन्टिफायर प्रकार के हैंडलर लिख सकते हैं।

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