日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

android 监听界面变化,Android之页面有变化用onWindowFocusChanged来监听权限是否开启...

發(fā)布時(shí)間:2023/12/10 Android 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 监听界面变化,Android之页面有变化用onWindowFocusChanged来监听权限是否开启... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1 問題

我們需要在Activity里面監(jiān)聽網(wǎng)絡(luò)變化、熱點(diǎn)是否開啟和關(guān)閉、GPS服務(wù)是否開啟、位置權(quán)限是否開啟等一些列行為。

2 思路

方法一:

如果是需要啟動(dòng)activity進(jìn)行權(quán)限申請,我們可以用如下組合模式

var intent = Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS)

startActivityForResult(intent, REQUEST_GPS_CODE)

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {

super.onActivityResult(requestCode, resultCode, data)

Log.i(TAG, "onActivityResult start requestCode is:" + requestCode)

//Android8.0以上版本

if (requestCode == REQUEST_GPS_CODE) {

}

}

方法二:

我們在onResume里面進(jìn)行權(quán)限檢測

方法三:

注冊廣播來進(jìn)行監(jiān)聽

方法四:

利用handler.postDelayed實(shí)現(xiàn)定時(shí)器,然后定時(shí)檢測權(quán)限

/**

* 檢查是否滿足條件讓按鈕變藍(lán)色的定時(shí)器

*/

inner class CheckCondition : Runnable {

var context: Context? = null

var type: String? = null

constructor(context: Context, type: String) {

this.context = context

this.type = type

}

override fun run() {

var result = false

result = condition(type!!)

Log.i(TAG, "CheckCondition result is:$result")

if (result) {

nextCreateWifAp.isEnabled = true

} else {

nextCreateWifAp.isEnabled = false

}

handler!!.postDelayed(this, 1000)

}

}

checkCondition = CheckCondition(this, ANDROID_VERSION_SIX_TO_SEVEN)

handler.postDelayed(checkCondition, TIME_TITERVAL)

方法五:

在onWindowFocusChanged函數(shù)里面檢測,比如切換頁面,滑動(dòng)菜單欄,都能觸發(fā)到,方案最理想,基本上能滿足你的需求。

override fun onWindowFocusChanged(hasFocus: Boolean) {

super.onWindowFocusChanged(hasFocus)

Log.i(TAG, "onWindowFocusChanged----------------------->")

var result = false

handler.postDelayed(Runnable {

result = condition(currentType)

Log.i(TAG, "CheckCondition result is:$result")

if (result) {

nextCreateWifAp.isEnabled = true

} else {

nextCreateWifAp.isEnabled = false

}

}, 1000)

}

總結(jié)

以上是生活随笔為你收集整理的android 监听界面变化,Android之页面有变化用onWindowFocusChanged来监听权限是否开启...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。