Android 保持屏幕常亮的幾種方法

版權(quán)聲明:

本賬號(hào)發(fā)布文章均來自公眾號(hào),承香墨影(cxmyDev)蝴猪,版權(quán)歸承香墨影所有调衰。

未經(jīng)允許,不得轉(zhuǎn)載自阱。

一窖式、前言

在實(shí)際開發(fā)的過程中,會(huì)有一些需要保持屏幕常亮动壤,避免進(jìn)入鎖屏狀態(tài)的需求。最常見的就是視頻播放的過程中淮逻,如果屏幕突然暗了琼懊,或者直接鎖屏,會(huì)非常的影響用戶的體驗(yàn)爬早。

本篇文章就對(duì) Android 下哼丈,如何保持屏幕常量,做一個(gè)簡單的記錄和總結(jié)筛严。

二醉旦、幾種常見的方法

1、WakeLock

使用 WakeLock 是一種教科書式的比較常規(guī)的手段桨啃,使用起來也非常的簡單车胡。


可以看到,WakeLock 主要是通過 PowerManager 獲取照瘾,然后通過 acquire() 方法獲取一個(gè) WakeLock 資源匈棘,WakeLock 也是一種資源,在使用完成之后析命,別忘了調(diào)用 release() 方法進(jìn)行釋放主卫。

使用 WakeLock 還需要額外的聲明 WAKE_LOCK 權(quán)限逃默。

<uses-permission android:name="android.permission.WAKE_LOCK" />

當(dāng)然,使用 WakeLock 暫時(shí)來看簇搅,應(yīng)該還是沒有什么問題的完域。但是實(shí)際上,所有和屏幕亮度相關(guān)的 WakeLock 的 Flag 瘩将,在 API level 17+ 之上吟税,都已經(jīng)被標(biāo)記廢棄了∧裥罚可以看出 Android 在節(jié)能上做了很多努力乌妙,屏幕是費(fèi)電大戶,既然已經(jīng)被廢棄掉了建钥,正常來說藤韵,我們還是不推薦使用的。

更多和 PowerManager.WakeLock 相關(guān)的內(nèi)容熊经,可以看看之前的一篇文章《PowerManager 不是只有 WakeLock 》泽艘。

2、FLAG_KEEP_SCREEN_ON

前面說了镐依,WakeLock 已經(jīng)被標(biāo)記廢棄匹涮。雖然被廢棄了,但是實(shí)際上 Android 還是給我們提供了對(duì)應(yīng)的解決方案的槐壳,那就是使用 FLAG_KEEP_SCREEN_ON 的方式來標(biāo)記屏幕常亮然低。

FLAG_KEEP_SCREEN_ON 使用起來也非常的簡單,它是一個(gè)頁面 Window 上的一個(gè) Flag 务唐,使用 addFlags() 方法添加雳攘。

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

當(dāng)然,這里使用完成之后枫笛,也是需要取消掉的吨灭。取消這個(gè) Flag 使用 clearFlags() 方法來取消。

getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

通常我們會(huì)在一個(gè) Activity 的 onResume()onPause() 方法中刑巧,分別調(diào)用這兩個(gè)方法喧兄。

看看 FLAG_KEEP_SCREEN_ON 的文檔解釋。


從這里可以看出來啊楚,它只作用在一個(gè)被顯示的 Window 上吠冤,并且保持設(shè)備屏幕高亮度的常亮。

其實(shí)這里也可以看出來特幔,官方廢棄 WakeLock 而推薦使用 FLAG_KEEP_SCREEN_ON 咨演,一部分原因在于 WakeLock 是一個(gè)全局的資源,而 FLAG_KEEP_SCREEN_ON 只是一個(gè)和 window 相關(guān)的資源蚯斯,作用范圍更小了一些薄风。并且它比 WakeLock 更好的一點(diǎn)在于饵较,它不需要額外的申請(qǐng)權(quán)限,一般來說遭赂,我們還是推薦使用它的循诉。

3、keepScreenOn

除了給 Window 添加一個(gè) FLAG_KEEP_SCREEN_ON 的 Flag 之外撇他,還可以對(duì)當(dāng)前可見的 View 調(diào)用 keepScreenOn() 方法來設(shè)置屏幕常亮茄猫。

keepScreenOn() 是 View 對(duì)象上的方法,同時(shí)也提供了布局中的屬性 android:keepScreenOn 來方便我們?cè)诓季种袑?duì)其進(jìn)行設(shè)置困肩。

需要注意的一點(diǎn)划纽,使用 keepScreenOn() 設(shè)置的常亮標(biāo)識(shí),需要當(dāng)前 View 保持屏幕可見才行锌畸。所以一般而言勇劣,我們會(huì)在頁面的根布局中,添加此屬性潭枣。

通過文檔可以看到比默,實(shí)際上它的原理和 FLAG_KEEP_SCREEN_ON 一樣的,只是它更簡單盆犁,只需要對(duì)某個(gè) View 設(shè)置命咐,如果該 View 可見即生效,否者就不生效谐岁。

4醋奠、MediaPlayer的 setScreenOnWhilePlaying()

如果我們是使用一個(gè) MediaPlayer 來進(jìn)行視頻播放的話,MediaPlayer 還提供了 setScreenOnWhilePlaying() 方法伊佃,來設(shè)置屏幕常量钝域。

其實(shí)沒什么好說的,繼續(xù)查看源碼可以看到其實(shí)最終調(diào)用的還是 keepScreenOn() 方法锭魔。當(dāng)然多了解一種方法也沒有什么壞處。

三路呜、小結(jié)

保持屏幕常亮的方式有很多迷捧,選用我們需要的即可。當(dāng)然胀葱,最好還是不要使用 WakeLock 了漠秋,比較已經(jīng)被標(biāo)記為廢棄了。

公眾號(hào)二維碼.jpg
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末抵屿,一起剝皮案震驚了整個(gè)濱河市庆锦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌轧葛,老刑警劉巖搂抒,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件艇搀,死亡現(xiàn)場離奇詭異,居然都是意外死亡求晶,警方通過查閱死者的電腦和手機(jī)焰雕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來芳杏,“玉大人矩屁,你說我怎么就攤上這事【粽裕” “怎么了吝秕?”我有些...
    開封第一講書人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長空幻。 經(jīng)常有香客問我烁峭,道長,這世上最難降的妖魔是什么氛悬? 我笑而不...
    開封第一講書人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任则剃,我火速辦了婚禮,結(jié)果婚禮上如捅,老公的妹妹穿的比我還像新娘棍现。我一直安慰自己,他們只是感情好镜遣,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開白布己肮。 她就那樣靜靜地躺著,像睡著了一般悲关。 火紅的嫁衣襯著肌膚如雪谎僻。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評(píng)論 1 305
  • 那天寓辱,我揣著相機(jī)與錄音艘绍,去河邊找鬼。 笑死秫筏,一個(gè)胖子當(dāng)著我的面吹牛诱鞠,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播这敬,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼航夺,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了崔涂?” 一聲冷哼從身側(cè)響起阳掐,我...
    開封第一講書人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后缭保,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體汛闸,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年涮俄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蛉拙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡彻亲,死狀恐怖孕锄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情苞尝,我是刑警寧澤畸肆,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站宙址,受9級(jí)特大地震影響轴脐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜抡砂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一大咱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧注益,春花似錦碴巾、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至啤月,卻和暖如春煮仇,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背谎仲。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來泰國打工浙垫, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人郑诺。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓绞呈,卻偏偏與公主長得像,于是被迫代替她去往敵國和親间景。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 一艺智、前言 在實(shí)際開發(fā)的過程中倘要,會(huì)有一些需要保持屏幕常亮,避免進(jìn)入鎖屏狀態(tài)的需求。最常見的就是視頻播放的過程中封拧,如果...
    別拿分?jǐn)?shù)嚇我媽閱讀 1,924評(píng)論 0 3
  • 生活總是讓我們遍體鱗傷志鹃,但到后來,那些受傷的地方一定會(huì)變成我們最強(qiáng)壯的地方泽西。---海明威 WakeLock是什么 ...
    小草凡閱讀 29,527評(píng)論 2 18
  • afinalAfinal是一個(gè)android的ioc曹铃,orm框架 https://github.com/yangf...
    passiontim閱讀 15,434評(píng)論 2 45
  • 這冬天,還是那么的冷捧杉。冬風(fēng)凄慘的吹著門窗陕见,呼嘯著。窗被拍打著味抖,發(fā)出碰撞的聲音评甜。 “伴啊,窗又要換了仔涩∪炭溃”躺在床上的女...
    莫笛閱讀 236評(píng)論 1 0
  • 摘要:本文適用于mysql5.5 mysql5.6 其他版本未測試 mysql -u帳號(hào) -p密碼 登錄mysql...
    暖夏未眠丶閱讀 969評(píng)論 0 2