Yanıtlar:
Bu, uygulamanıza ek bir izin vermenizi gerektirir ve yanlışlıkla uyandırma kilidini tutmaya devam ettiğinizde ve böylece ekranı açık bıraktığınızda hatalar ortaya çıkarmak çok kolaydır.
FLAG_KEEP_SCREEN_ONAktivitenizin penceresinden şu şekilde etkinleştirebileceğiniz pencere bayrağını kullanmak çok, çok daha iyidir onCreate():
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
Bu, pencereniz ön plandayken ve yalnızca ön plandayken ekranın açık kalmasını sağlayacaktır. Bu yaygın kullanım durumunu büyük ölçüde basitleştirerek, uygulamanızın durumlar arasında geçişi sırasında yapmanız gereken herhangi bir hokkabazlığı ortadan kaldırır.
Bu Soru @hackbod tarafından Zaten Harika Cevap!
Bu Soruyu İki Ek Çözümle Cevaplıyorum!
Mevcut Çözüm:
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
Ek Çözümler:
kullanabiliriz keepScreenOn
1. implementation kullanmasetKeepScreenOn() 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);
}
Dokümanlar http://developer.android.com/reference/android/view/View.html#setKeepScreenOn(boolean)
2. ekleme keepScreenOniçinxml 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" >
Dokümanlar http://developer.android.com/reference/android/view/View.html#attr_android%3akeepScreenOn
Not (Bazı Yararlı Noktalar):
1.keepScreenOn Üzerinde kullanılması gerektiği önemli değil Main/Root/Parent View Herhangi bir şekilde kullanılabilir, child viewÇalıştığı gibi çalışır.Parent view
2. Sadece Şey meselesi, View's Visibility must be visibleaksi takdirde işe yaramayacağıdır!
v.setKeepScreenOn(true);, bunu tam ekran iletişim kutusu için yapmanın tek yolu gibi görünüyor
Diğer bir çözüm, ekranı açık tutması gereken görünümlere android:keepScreenOn="true"( dokümantasyon ) eklemektir .
Hangi görünümlerin açık kaldığı ve hangilerinin kalmadığı konusunda biraz daha ayrıntılı kontrol sağlar. Bu şekilde bir kaynak dosyasındaki bir ayara bile başvurabilirsiniz.