Android應用禁止螢幕休眠的幾種方法

2021-09-30 00:25:36 字數 2397 閱讀 5699

做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宣告。如下 這...