संबंधित प्रश्न:
-
यह मेरी अजीब व्यवहार में एक अजीब व्यवहार है।
पोर्ट्रेट मोड (यह सामान्य है)
- स्क्रीन लॉक दबाएं,
गतिविधि: onPause ()
- स्क्रीन अनलॉक करें,
गतिविधि: परप्रकाश () ।
लैंडस्केप मोड (यह अजीब है)
- स्क्रीन लॉक को दबाएं,
गतिविधि: onPause () - & gt; ऑनस्टॉप () - & gt; ऑनडायरॉय () - & gt; OnCreate () - & gt; ऑनस्टार्ट () - & gt; पोर्ट्रेट लेआउट को लोड करता है;
- स्क्रीन अनलॉक करें,
गतिविधि: onPause () - & gt; ऑनस्टॉप () - & gt; ऑनडायरॉय () - & gt; OnCreate () - & gt; ऑनस्टार्ट () - & gt;
पोर्ट्रेट मोड: (उसी)
लैंडस्केप मोड: (पोर्ट्रेट मोड की तरह काम करना चाहिए)
- स्क्रीन लॉक को दबाएं,
गतिविधि: ऑन-पॉज़ () ;
- स्क्रीन को अनलॉक करें,
गतिविधि: परप्रकाश () ।
तो मेरे प्रश्न:
- मेरी गतिविधियां इस तरह से क्यों व्यवहार करती हैं?
- आपकी गतिविधियों का व्यवहार कैसे होता है?
मेरे प्रश्न का मूल पाठ वर्णन:
जबकि मैं अपने लॉक स्क्रीन बटन को दबाता हूं फोन, जब मेरी गतिविधि अपने लैंडस्केप मोड में है, मैंने देखा (डिबग संदेश में मैं एक्लिप्स को आउटपुट) गतिविधि को उसके पोर्ट्रेट मोड में बनाया गया है (जब कि स्क्रीन बिल्कुल काला है)। तब जब मैं स्क्रीन को अनलॉक करने के लिए लॉक स्क्रीन बटन को फिर से दबाता हूं, तो गतिविधि को नष्ट कर दिया गया और उसके पोर्ट्रेट पर फिर से बनाया गया।
मुझे याद है (हालांकि 100% यकीन नहीं है), और मैं क्या उम्मीद करता हूं , मेरी गतिविधि को केवल
onSaveInstanceState () और
onPause () से गुजरना चाहिए, जबकि लैंडस्केप मोड में लॉक स्क्रीन होना चाहिए, जैसे कि पोर्ट्रेट मोड में ऐसा होता है पोर्ट्रेट को फिर से बनाने और लैंडस्केप पर वापस जाने की बजाए।
क्या यह है कि मैंने अपने फोन के साथ कुछ गड़बड़ कर दिया है? मैं इसे सामान्य रूप में कैसे ठीक कर सकता हूं?
धन्यवाद!
इस मुद्दे में योगदान देने के लिए धन्यवाद। अपने उपकरणों में मेरे लिए परीक्षण करने के अपने प्रयास के लिए विशेष रूप से धन्यवाद। और विशेष रूप से मेरे लिए इस मुद्दे के विषय में गहराई से चर्चा करने के लिए @ रघुुनंदन। धन्यवाद
अब तक के सभी योगदानों का सारांश, मेरे पास निम्न निष्कर्ष हैं:
1 यह एक सामान्य घटना है।
ऐसा लगता है कि, मोबाइल फोन पर चलने वाली गतिविधियाँ, जो कि लैंडस्केप मोड में हैं, स्क्रीन लॉक पर पोर्ट्रेट मोड में बदल जाती हैं एक सामान्य व्यवहार है। कम से कम यह अभी तक परीक्षण किए गए फोन पर सच है। इसलिए हमें यह सुनिश्चित करना होगा कि हमारे जीवनचक्र कार्यकाल इस परिवर्तन को सुंदर ढंग से हमेशा ध्यान रख सकें।
2 लगता है कि लॉक स्क्रीन में "डिफ़ॉल्ट अभिविन्यास" के कारण है।
हमारे पास इस समस्या के बारे में दस्तावेज़ीकरण या कई संसाधन नहीं हैं। लेकिन धारणा है कि चलने वाली गतिविधियों स्क्रीन लॉक पर डिवाइस की "डिफ़ॉल्ट ओरिएंटेशन" पर वापस आ रही हैं, क्योंकि अधिकांश डिवाइसों में लॉक स्क्रीन पोर्ट्रेट में है, काफी तार्किक है।
आगे का अध्ययन: < P> मुझे आश्चर्य है कि अगर हम एक लैंडस्केप लॉक स्क्रीन रखते हैं तो क्रियाकलाप कैसे व्यवहार करते हैं?
आप रोक सकते हैं ओरिएंटेशन परिवर्तन पर पुनरारंभ करने की गतिविधि, लेकिन यह आम तौर पर एक बहुत बुरा विचार है।
एंड्रॉइड प्रलेखन में
नोट: कॉन्फ़िगरेशन परिवर्तन को संभालने से आप इसे अधिक कठिन बना सकते हैं वैकल्पिक संसाधनों का उपयोग करने के लिए, क्योंकि सिस्टम स्वचालित रूप से आपके लिए उन्हें लागू नहीं करता है
एंड्रॉइड सामान्यत: केवल रोटेशन पर फिर से तैयार करने की सिफारिश करता है यदि आप डॉन 'डॉन' हैं, तो इस तकनीक को अंतिम उपाय माना जाना चाहिए, जब आप कॉन्फ़िगरेशन बदलाव के कारण पुनरारंभ से बचने के लिए आवश्यक हैं। टी वैकल्पिक संसाधनों की आवश्यकता और , अधिक महत्वपूर्ण बात, प्रदर्शन की आवश्यकता है एक अच्छी तरह से डिज़ाइन किए गए ऐप को ज्यादातर मामलों में ऐसा करने की आवश्यकता नहीं है।
यदि आप डिफ़ॉल्ट एंड्रॉइड व्यवहार को रोकने के रास्ते पर जाने पर जोर देते हैं, तो मैं रघुनाथन के कोड को संशोधित करता हूं और एक स्क्रीन आकार विशेषता को कुंआ। एपीआई स्तर 13 के अनुसार, स्क्रीन आकार उन्मुखीकरण परिवर्तन पर बदलता है। तो आपको स्क्रीन साइज शामिल करना होगा जब तक कि आप केवल एपीआई 12 और नीचे को लक्षित नहीं कर रहे हों।
& lt; गतिविधि एंड्रॉइड: name = "। MyActivity" एंड्रॉइड: configChanges = "orientation- screenSize" android: label = " @ स्ट्रिंग / app_name "& gt;
- स्क्रीन को अनलॉक करें,
- स्क्रीन अनलॉक करें,
- स्क्रीन अनलॉक करें,
- स्क्रीन लॉक दबाएं,
No comments:
Post a Comment