2010-05-05 14 views
9

मैं स्क्रीन पर रखने पर दो तरीके पाया है: वहाँस्क्रीन को किस तरह से रखते हुए, किस तरह से?

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); 
wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "DoNotDimScreen"); 

है:

पहले एक सरल है:

getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 

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

+0

* यदि * एक एक अनुमति की जरूरत है और अन्य नहीं है, वहाँ ** है ** निश्चित रूप से एक अंतर (या एपीआई में एक बग)। क्या अंतर है, हालांकि, मुझे नहीं पता। –

+0

अनुमति शायद वहां है क्योंकि आप इसके साथ अधिक शक्तिशाली चीजें कर सकते हैं, न केवल स्क्रीन को चालू रखें। मैं सिर्फ अंतिम परिणाम के बारे में और सोच रहा था, अगर दोनों तरीकों से स्क्रीन पर हमेशा कोई फर्क नहीं पड़ता है। –

उत्तर

22

आप Coding for (Battery) Life गूगल आईओ प्रस्तुति देखना चाहिए, 16

स्लाइड आप, तो करने के लिए नहीं करना चाहते हैं: आप किसी भी लेआउट तत्व के लिए एक्सएमएल में पहले एक कर सकता है और यह सुझाव दिया है एक का उपयोग करने (हालांकि खिड़की पर इसे लागू करने के बारे में पता नहीं है, वॉकलोक, डुनो के रूप में बुरा हो सकता है)।

एक्सएमएल:

<LinearLayout 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:keepScreenOn="true"> 

विंडो करें:

getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 
+0

धन्यवाद, मुझे एक्सएमएल तरीके के बारे में पता नहीं था। मुझे लगता है कि यह लगभग खिड़की के बराबर है। हालांकि प्रस्तुति में यह कहता है कि भूल गए हैं तो wakelocks महंगा हैं। तो अगर सही हो तो वे ठीक होना चाहिए। ऐसा लगता है कि अंतिम परिणाम वही होगा। मैं तब अनुशंसित तरीके का चयन करूंगा। –

+1

@ जेनएस। आपको वीडियो देखना चाहिए: http://www.youtube.com/watch?feature=player_detailpage&v=OUemfrKe65c#t=1793 (2 9:53 को)। यदि आपके पास सिर्फ यूआई आधारित ऐप है तो वॉकलॉक और इसकी अनुमति का उपयोग करने की आवश्यकता नहीं है और यदि आपके पास बग या क्रैश हैं तो बहुत ही समस्याग्रस्त है। यदि आप इसके बजाय इस ध्वज का उपयोग करते हैं, तो आप एक वाकलॉक का उपयोग करने से बचें, फिर भी जब तक उपयोगकर्ता वर्तमान लेआउट पर रहता है तब तक स्क्रीन को तब तक रखें। –

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