2011-03-19 16 views

उत्तर

-7

जब आवेदन निलंबित कर दिया जाता है, तो UIApplicationWillResignActiveNotification अधिसूचना पोस्ट की जाती है।

मुझे लगता है कि आप इस अधिसूचना को मैन्युअल रूप से पोस्ट करने का प्रयास कर सकते हैं। यद्यपि यह खुद कोशिश नहीं की थी।

+0

के लिए अपने अनुप्रयोग को निलंबित कर देगा अधिसूचना आईओएस द्वारा उठाया जाता है और विधि अपने आप को एप्लिकेशन को निलंबित नहीं होंगे बुला। –

2

आप यह नहीं कर सकते हैं।

आप अपने अनुप्रयोग बाहर निकलने के लिए, अस्वीकृति का डर नहीं करना चाहते हैं और उन से झूठी सकारात्मक दुर्घटना रिपोर्ट ईमेल प्यार यदि आप कह सकते हैं exit(0);

+0

'निकास (0)' का उपयोग करके ऐप को समाप्त कर दिया जाएगा और इसे निलंबित नहीं किया जाएगा (उदा। इसे पृष्ठभूमि में ले जाएं)। –

15

आपके आवेदन छोड़ने या यह पृष्ठभूमि के लिए भेजने को प्रोग्राम के iOS Human Interface Guidelines का उल्लंघन है , जो आमतौर पर समीक्षा प्रक्रिया के माध्यम से प्राप्त करने के लिए शुभ नहीं है:

छोड़ो मत प्रोग्राम

कभी भी मैं छोड़ने ओएस अनुप्रयोग प्रोग्रामेटिक रूप से क्योंकि लोग को क्रैश के रूप में समझने के लिए करते हैं। हालांकि, यदि बाह्य परिस्थितियां कार्य को के रूप में कार्य करने से रोकती हैं, तो आपको स्थिति के बारे में अपने उपयोगकर्ताओं को बताना होगा और बताएं कि वे इसके बारे में क्या कर सकते हैं। पर निर्भर करता है कि आवेदन खराब होने पर आपके पास दो विकल्प हैं।

समस्या का वर्णन करने वाली एक आकर्षक स्क्रीन प्रदर्शित करें और सुधार का सुझाव देता है। एक स्क्रीन फ़ीडबैक प्रदान करती है जो उपयोगकर्ताओं को आश्वस्त करती है कि आपके एप्लिकेशन के साथ कुछ भी गलत नहीं है। यह नियंत्रण में उन डालता है, उन्हें तय है कि क्या वे चाहते सुधारात्मक कार्रवाई

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

इस के लिए दार्शनिक कारण यह है कि दस्तावेज़ में पहले समझाया गया है:

लोग, नहीं अनुप्रयोगों, शुरू करने और क्रियाओं को नियंत्रित करना चाहिए। हालांकि एक आवेदन कार्रवाई का एक कोर्स सुझा सकता है या खतरनाक परिणामों के बारे में चेतावनी दे सकता है, यह आमतौर पर उपयोगकर्ता से दूर निर्णय लेने के लिए ऐप के लिए की गलती है।सबसे अच्छे ऐप्स लोगों को को खतरनाक परिणामों से बचने में उनकी सहायता करते समय की क्षमता के बीच सही संतुलन पाते हैं।

उपयोगकर्ता एप पर नियंत्रण महसूस करते हैं जब व्यवहार और नियंत्रण परिचित और अनुमानित होते हैं। और, जब क्रियाएं सरल हैं और सीधा है, तो उपयोगकर्ता आसानी से समझ सकते हैं और उन्हें याद कर सकते हैं।

लोग आरंभ होने से पहले एक ऑपरेशन रद्द करने के लिए पर्याप्त अवसर है की उम्मीद है, और वे एक संभावित विनाशकारी कार्रवाई करने के लिए उनके इरादे की पुष्टि करने का मौका पाने के लिए उम्मीद है। अंत में, पर चलने वाले ऑपरेशन को गहराई से रोकने में सक्षम होने की उम्मीद है।

कोई कारण नहीं होना चाहिए कि आपको अपने ऑपरेशन के दौरान पृष्ठभूमि में अपने आवेदन को मजबूर करने की आवश्यकता हो। स्क्रीन पर प्रदर्शित होने पर इसे पूरी तरह कार्यात्मक रहना चाहिए और जब उपयोगकर्ता आपके एप्लिकेशन से स्विच करना चाहते हैं तो यह उपयोगकर्ता तक होना चाहिए।

निम्नलिखित कोड काम करेगा, (एक iPhone 3GS में परीक्षण किया गया):

UIApplication *app = [UIApplication sharedApplication]; 
[app performSelector:@selector(suspend)]; 
+0

क्या आप सही कहेंगे, लेकिन एप्लिकेशन ने अधिसूचना शुरू की है, और को फिर से खोलना चाहिए और आपको पता है कि क्या हो रहा है केवल निर्देशों को करने के लिए खुला है, वैसे भी धन्यवाद! – Doom

31

UIApplication के लिए एक निजी उदाहरण विधि है

UIControl().sendAction(#selector(NSURLSessionTask.suspend), to: UIApplication.sharedApplication(), forEvent: nil) 

संपादित करें स्विफ्ट 3:

UIControl().sendAction(#selector(URLSessionTask.suspend), to: UIApplication.shared, for: nil) 
+0

क्या यह ऐप स्टोर द्वारा स्वीकार किया जाता है? मुझे पता है कि कुछ मामलों के लिए बाहर निकलें (0) खारिज कर दिया जाएगा। मुझे निलंबित होने के बारे में निश्चित नहीं है। क्या आप मेरी पुष्टि कर सकते हैं? – Chan

+4

@Chan आपको ऐप स्टोर के माध्यम से सबमिट किए गए ऐप के लिए कभी भी निजी एपीआई नहीं बुलाया जाना चाहिए। सर्वोत्तम अभ्यास के लिए ब्रैड का जवाब देखें। – Rob

+1

यह आपको एक निजी एपीआई का उपयोग करने के लिए प्रोत्साहित नहीं करना है, लेकिन मेरे पास ऐप स्टोर में पहले से ही ऐप्स हैं। हालांकि ऐप स्टोर पर इसे सबमिट करते समय यह एक चेतावनी प्रदर्शित करता है कि एक निजी एपीआई उपयोग की जाती है। – sole007

-3

उपयोग:

sleep(15) 

यह विशिष्ट समय

+1

यह ऐप को एक निश्चित समय (यदि मुख्य कतार पर किया जाता है) के लिए फ्रीज कर देगा, जो इसे निलंबित करने जैसा नहीं है (उदाहरण के लिए इसे पृष्ठभूमि में ले जाना)। –

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