कुछ ऐप्लिकेशन के लिए स्क्रीन चालू रखना ज़रूरी होता है. जैसे, गेम या फ़िल्म देखने वाले ऐप्लिकेशन. कुछ Android API, स्क्रीन को अपने-आप चालू रखते हैं. अन्य मामलों में, स्क्रीन को मैन्युअल तरीके से चालू रखने के लिए, एक फ़्लैग सेट किया जा सकता है.
मैन्युअल तरीके से स्क्रीन चालू रखना
डिवाइस की स्क्रीन चालू रखने के लिए, अपनी गतिविधि में FLAG_KEEP_SCREEN_ON
फ़्लैग सेट करें. यह फ़्लैग सिर्फ़ किसी गतिविधि में सेट किया जा सकता है, न कि किसी सेवा या ऐप्लिकेशन के दूसरे कॉम्पोनेंट में. उदाहरण के लिए:
Kotlin
class MainActivity : Activity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) } }
Java
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); getWindow().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
को सेट नहीं करती है, तो डिवाइस कुछ समय तक इस्तेमाल में न होने पर, अपने-आप ऐंबियंट मोड में चला जाता है.