2011-11-17 8 views
6

मेरे iPhone आवेदन दो राज्यों है। खेल उपकरण केवल झुकाव का उपयोग कर खेला जाता है तो मैं ऑटो नींद बंद खेल प्रारंभ होने पर:आईओएस idleTimerDisabled व्यवहार

[[UIApplication sharedApplication].idleTimerDisabled = TRUE; 

लेकिन जैसे ही मैंने यूआई पर लौटने, मैं ऑटो नींद फिर से सक्रिय होना चाहते हैं। तो खेल खत्म पर मैं इसे बहाल:

[[UIApplication sharedApplication].idleTimerDisabled = FALSE; 

एक लंबे खेल खेलने के बाद, यह पहली यूआई स्क्रीन है कि मैं खेल के बाद जाना के तत्काल काला में हुई। तो ऐसा लगता है कि जब निष्क्रिय टाइमर अक्षम किया गया था तब भी यह समय की गणना कर रहा था। और इसे "सक्षम" के तुरंत बाद निकाल दिया गया था। मैं इस समस्या को कैसे ठीक करुं?

उत्तर

2

मैं अगर idleTimer प्रोग्राम के रूप में रीसेट किया जा सकता पता नहीं है, लेकिन एक विकल्प यह पहले स्क्रीन को छूने के लिए उपयोगकर्ता की आवश्यकता है वापस चला जाता है।

एक बार जब आप वापस आ जाएंगे और idleTimerDisabled = NO सेट करने से पहले इसे पूरा करने के लिए अपना दूसरा टाइमआउट सेट करें। यदि आप गेम को फिर से शुरू करते हैं तो इस टाइमआउट को साफ़ करना याद रखें।

+1

दूसरे विकल्प के मूल्य के लिए सेटिंग गया था के साथ मेरी समस्या हल हो जाती वास्तव में क्या मैं पहले से ही इस्तेमाल करते हैं लगता है। मुझे आश्चर्य है कि इस समस्या में संशोधन करने के लिए कम "हैकी" तरीका मौजूद है या नहीं। – Nick

+1

सिस्टम निष्क्रिय टाइमआउट मान का आकलन इतना अच्छा नहीं है, लेकिन इसके अलावा यह एक बहुत अच्छा "हैक" है। आप प्रोग्रामेटिक टच इवेंट की कोशिश कर सकते हैं, लेकिन अगर यह काम करता है तो यह कम "हैकी" नहीं होगा। – Gil

+0

@Gil शायद मैं इस अधिकार को समझ नहीं पा रहा हूं। IdleTimerDisabled = ओपी देख रहे "रेस हालत" के साथ कोई कॉल मदद में मनमाने ढंग से देरी करने में देरी होगी? उदाहरण के लिए, यदि आईओएस टाइमर 30 सेकंड पर सेट किया गया था और वर्तमान में सेकंड 25 पर था, तो ऐप वापस आने के बाद 5 सेकंड की देरी को मजबूर करता है। क्या यह सिर्फ एक ही समस्या का कारण नहीं है क्योंकि आप आईओएस आंतरिक निष्क्रिय टाइमर की स्थिति नहीं जानते हैं? – stonedauwg

1

यह answer उपयोगी हो सकता है।

मुझे संगीत/ऑडियो प्लेयर का उपयोग करते समय भी समस्याएं थीं, जो टाइमर को पुनः सक्रिय करने लगती थीं।

पुनश्च: ObjectiveC में आप का उपयोग करना चाहिए हाँ/नहीं के बजाय गलत/सही

+1

मैं अपने सवाल-जवाब आप का उल्लेख के बीच सीधा संबंध नहीं दिख रहा। जैसा कि मैंने समझा, उन्हें अक्षम_टाइमर सक्रिय करने में समस्याएं थीं। और उनका समाधान इसे किसी और को तुरंत सेट करने के लिए था। मेरी स्थिति यह है कि टाइमर सामान्य रूप से सक्रिय और निष्क्रिय करता है, लेकिन यह निष्क्रियता समय की "याद करता है" और सक्रियण पर, एक बार में आग लगती है। प्रोग्रामर रूप से "टच" डिवाइस का कोई तरीका नहीं है जिससे टाइमर रीसेट हो रहा है? – Nick

+0

मैं इस टिप निष्क्रिय टाइमर जो मैं एक UISwitch (जैसे 0/1) – GeoffCoope