做android應用開發時,有時需要在應用前台執行時,禁止休眠,以下幾種方法供參考。
方法一:持有wakelock
新增休眠鎖,休眠鎖必須成對出現。
private wakelock mwakelock = null;
private
void
acquirewakelock()
}@override
protected
void
onresume()
@override
protected
void
onpause()
private
void
acquirewakelock()
}private
void
releasewakelock()
}
在onresume以及onpause執行相應操作
androidmanifest.xml檔案中新增許可權:
android:name
="android.permission.wake_lock"
/>
android:name
="android.permission.device_power"
/>
方法二:在window設定flag
在activity布局中設定windows屬性進行控制,但是一定要在載入布局之前執行,此種方法的侷限性是只有在activity類中有效,activity退出時失效。
getwindow()
.setflags
(windowmanager.layoutparams.flag_keep_screen_on,
windowmanager.layoutparams.flag_keep_screen_on)
;setcontentview
(r.layout.***)
;//或者設定下面的也一樣
//getwindow().addflags(windowmanager.layoutparams.flag_keep_screen_on);
這種方式不需要申請許可權,也是官方推薦的做法
這個方法的好處是,與wakelocks不同 ,它不需要具體的許可權,並且在換不同應用程式的操作中,系統會管理,不必擔心沒有釋放的未使用的資源。
你並不需要清除flag_keep_screen_on標誌,除非你不再需要在螢幕上停留在你執行應用程式。當應用程式進入後台或返回到前台發生,視窗管理器負責保障正常的事件處理,但是如果你明確的想要清除這個標緻,從而允許螢幕熄滅,可以使用clearflags()方法
如下:
getwindow()
.clearflags
(windowmanager.layoutparams.flag_keep_screen_on)
就可以控制螢幕熄滅了
方法三:在介面布局xml中頂層新增屬性
在view布局中新增屬性,此種方法的好處是不一定非要在activity介面執行時螢幕常亮才有效,view啟動後可以自主設定。
view的xml布局中加入:
在xml檔案中,使用android:keepscreenon屬性
xmlns:android
=""android:layout_width
="match_parent"
android:layout_height
="match_parent"
android:keepscreenon
="true"
>
...relativelayout
>
這個設定android:keepscreenon=「true」等同於flag_keep_screen_on。
**中執行是否保持螢幕常亮:
view.
setkeepscreenon
(true);
view.
setkeepscreenon
(false
);
Android螢幕禁止休眠的方法
實現這一功能的方法有兩種,一種是在manifest.xml檔案裡面宣告,一種是在 裡面修改layoutparams的標誌位。具體如下 1 在manifest.xml檔案裡面用user permission宣告。如下 android name android.permission.wake lock ...
Android禁止旋轉螢幕
禁止螢幕隨手機旋轉變化 有時候我們希望讓乙個程式的介面始終保持在乙個方向,不隨手機方向旋轉而變化 在androidmanifest.xml的每乙個需要禁止轉向的activity配置中加入android screenorientation landscape 屬性。landscape 橫向 portr...
Android 禁止系統休眠,使屏
用了第二種,有效 android 禁止系統休眠,使螢幕不變暗,保持遊戲中螢幕高亮 實現這一功能的方法有兩種,一種是在manifest.xml檔案裡面宣告,一種是在 裡面修改layoutparams的標誌位。具體如下 1 在manifest.xml檔案裡面用user permission宣告。如下 這...