जवाबों:
इसके लिए आवश्यक है कि आप अपने ऐप को एक अतिरिक्त अनुमति दें, और उन बगों को पेश करना बहुत आसान है जहां आप गलती से वेक लॉक को पकड़े रहते हैं और इस प्रकार स्क्रीन को छोड़ देते हैं।
यह बहुत दूर है, खिड़की के झंडे का उपयोग करना बेहतर है FLAG_KEEP_SCREEN_ON, जिसे आप अपनी गतिविधि की खिड़की पर onCreate()इस तरह से सक्षम कर सकते हैं :
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
इससे यह सुनिश्चित हो जाएगा कि स्क्रीन आपकी विंडो के अग्र भाग में है, और केवल अग्रभूमि में रहने के दौरान। यह इस सामान्य उपयोग के मामले को बहुत सरल करता है, राज्यों के बीच आपके ऐप संक्रमण के रूप में आपके द्वारा किए जाने वाले किसी भी करतब को समाप्त करने की आवश्यकता है।
यह प्रश्न पहले से ही महान उत्तर @hackbod द्वारा दिया गया है!
मैं दो अतिरिक्त समाधानों के साथ इस प्रश्न का उत्तर दे रहा हूं!
मौजूदा समाधान:
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
अतिरिक्त समाधान:
हम प्रयोग कर सकते हैं keepScreenOn
1. implementation का उपयोग करsetKeepScreenOn() in java code
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// or any View (in case generated programmatically )
View v = getLayoutInflater().inflate(R.layout.driver_home, null);
v.setKeepScreenOn(true);
setContentView(v);
}
डॉक्स http://developer.android.com/reference/android/view/View.html#setKeepScreenOn(boolean)
2. जोड़ना keepScreenOnकरने के लिएxml layout
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:keepScreenOn="true" >
डॉक्स http://developer.android.com/reference/android/view/View.html#attr_android%3akecillinOn
नोट (कुछ उपयोगी बिंदु):
1। यह कोई फर्क नहीं पड़ता कि keepScreenOnइस पर इस्तेमाल किया जाना चाहिए Main/Root/Parent View किसी के साथ भी child viewकाम किया जा सकता हैParent view
2. बात केवल View's Visibility must be visibleयह है कि अन्य बुद्धिमान यह काम नहीं करेगा!
v.setKeepScreenOn(true);फुलस्क्रीन डॉयलागमेंट के लिए इसे करने का एकमात्र तरीका प्रतीत होता है
एक और समाधान जोड़ना है android:keepScreenOn="true"( प्रलेखन ) विचारों पर स्क्रीन रखने की जरूरत है कि करने के लिए।
उन विचारों के संदर्भ में थोड़ा और अधिक दानेदार नियंत्रण की अनुमति देता है, जिन पर विचार बना रहता है और जो नहीं करते हैं। आप इस तरह से एक संसाधन फ़ाइल से सेटिंग का संदर्भ भी ले सकते हैं।