今天的内容很短,因为实作还蛮容易的。
浏览网页时,有些时候是在看影片。这时,如果没有特别设定要系统保持清醒的话,常常会看到一半就因为系统睡眠时间到了,就把画面关掉。如果常常会利用 browser 来看影片的话,最好有个开关让系统在使用 browser app 时能够不要受到系统的睡眠时间设定影响。
在 browser 中的设定画面已经利用 Android 的 Preference UI 设计得很完善了,所以我只要在特定的 preference xml 中加入新的 checkbox preference,然後再在程序中侦测当这个设定改变时,把 keep awake 的状态打开来就行了。
<CheckBoxPreference
android:defaultValue="false"
android:icon="@drawable/ic_eye"
android:key="sp_screen_awake"
android:title="@string/setting_title_screen_awake"
android:summary="@string/setting_summary_screen_awake" />
var keepAwake: Boolean
get() = sp.getBoolean(K_KEEP_AWAKE, false)
set(value) {sp.edit { putBoolean(K_KEEP_AWAKE, value) } }
override fun onCreate(savedInstanceState: Bundle?) {
...
if (config.keepAwake) {
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
}
private val preferenceChangeListener = SharedPreferences.OnSharedPreferenceChangeListener { _, key ->
when {
key.equals(ConfigManager.K_KEEP_AWAKE) -> {
if (config.keepAwake) {
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
} else {
window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
}
...
}
}
这功能没有什麽好示范的,就跳过示范罗。
>>: Day 21 资料宝石:【Lab】RDS架构 建立自己的第一台云端资料库 (上)
嗨~各位好久不见, 最近几乎都在写一些自己喜欢的专案, 不知不觉已经两周了呢 (欢乐的时光总是过得...
前言 在前面几天介绍了使用了 useCallback 或 useMemo 来做效能优化,不知道会不会...
此篇为番外,为选入本篇的原因为 Cypress 的功能与 End to End 测试的方式多元且复...
💡 开始使用 Git 之前,我们需要先设定使用者名称及电子邮件地址。 为什麽需要设定用户名称及 E-...
Tag:随意刷-[50-100] LeetCode Problem Source: 54. Spir...