कुछ ऐप्लिकेशन के लिए स्क्रीन को चालू रखना ज़रूरी होता है. जैसे, गेम या फ़िल्म वाले ऐप्लिकेशन. कुछ Android एपीआई, स्क्रीन को अपने-आप चालू रखते हैं. अन्य मामलों में, स्क्रीन को मैन्युअल तरीके से चालू रखने के लिए, फ़्लैग सेट किया जा सकता है.
मैन्युअल तरीके से स्क्रीन चालू रखना
डिवाइस की स्क्रीन को चालू रखने के लिए, अपनी गतिविधि में FLAG_KEEP_SCREEN_ON फ़्लैग सेट करें. इस फ़्लैग को सिर्फ़ किसी गतिविधि में सेट किया जा सकता है. इसे किसी सेवा या ऐप्लिकेशन के अन्य कॉम्पोनेंट में सेट नहीं किया जा सकता. उदाहरण के लिए:
class MainActivity : Activity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) } }
स्क्रीन को चालू रखने का एक और तरीका है. इसके लिए, अपने ऐप्लिकेशन की लेआउट एक्सएमएल फ़ाइल में android:keepScreenOn एट्रिब्यूट को सेट करें:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:keepScreenOn="true"> ... </RelativeLayout>
android:keepScreenOn="true" का इस्तेमाल करना, FLAG_KEEP_SCREEN_ON का इस्तेमाल करने जैसा ही है.
अपने ऐप्लिकेशन के लिए, सबसे सही तरीका इस्तेमाल किया जा सकता है. अपनी गतिविधि में प्रोग्राम के हिसाब से फ़्लैग सेट करने का फ़ायदा यह है कि आपको बाद में प्रोग्राम के हिसाब से फ़्लैग को हटाने का विकल्प मिलता है. इससे स्क्रीन को बंद किया जा सकता है.
अगर FLAG_KEEP_SCREEN_ON फ़्लैग वाला कोई ऐप्लिकेशन बैकग्राउंड में चला जाता है, तो सिस्टम स्क्रीन को सामान्य तरीके से बंद होने की अनुमति देता है. इस मामले में, आपको फ़्लैग को साफ़ तौर पर हटाने की ज़रूरत नहीं है. अगर आपके ऐप्लिकेशन को अब स्क्रीन चालू रखने की ज़रूरत नहीं है, तो आपको फ़्लैग को हटा देना चाहिए. इसके लिए, clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) को कॉल करें.
टीवी के लिए ऐंबियंट मोड
टीवी डिवाइसों पर, वीडियो चलने के दौरान डिवाइस को ऐंबियंट मोड में जाने से रोकने के लिए, FLAG_KEEP_SCREEN_ON का इस्तेमाल करें. अगर फ़ोरग्राउंड ऐक्टिविटी में FLAG_KEEP_SCREEN_ON सेट नहीं किया जाता है, तो कुछ समय तक कोई गतिविधि न होने पर, डिवाइस अपने-आप हमेशा चालू स्क्रीन मोड में चला जाता है.