android 监听界面变化,Android之页面有变化用onWindowFocusChanged来监听权限是否开启...
1 问题
我们需要在Activity里面监听网络变化、热点是否开启和关闭、GPS服务是否开启、位置权限是否开启等一些列行为。
2 思路
方法一:
如果是需要启动activity进行权限申请,我们可以用如下组合模式
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里面进行权限检测
方法三:
注册广播来进行监听
方法四:
利用handler.postDelayed实现定时器,然后定时检测权限
/**
* 检查是否满足条件让按钮变蓝色的定时器
*/
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函数里面检测,比如切换页面,滑动菜单栏,都能触发到,方案最理想,基本上能满足你的需求。
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)
}
android 监听界面变化,Android之页面有变化用onWindowFocusChanged来监听权限是否开启...相关推荐
- Android之页面有变化用onWindowFocusChanged来监听权限是否开启
1 问题 我们需要在Activity里面监听网络变化.热点是否开启和关闭.GPS服务是否开启.位置权限是否开启等一些列行为. 2 思路 方法一: 如果是需要启动activity进行权限申请,我们可以用 ...
- 监听localStorage变化(同页面监听)
"当同源页面的某个页面修改了localStorage,其余的同源页面只要注册了storage事件,就会触发" 同页面监听,重写localStorage的方法,抛出自定义事件: &l ...
- android监控指纹信息变化,android监听指纹变化(解决反射思路在android10不生效的问题)...
前天偶尔运行代码,一个段异常映入眼帘,我擦android10上反射机制监听不到指纹id等数据了,原因是android10彻底抛弃了之前指纹的api.所以反射不到了. 怎么解决这个问题?我们换个思路当然 ...
- android 监听图库变化,Android ContentObserver 监听图库变化
电脑环境是XP,软件是gVim7.3,安装在C盘的 Program Files 下.如何设置gVim的字体和背景颜色:C---Program Files---Vim---_vimrc文件,用文本编辑器 ...
- vue 组件监听页面切换_vue项目如何监听窗口变化,达到页面自适应?
[自适应]向来是前端工程师需要解决的一大问题--即便作为当今非常火热的vue框架,也无法摆脱--虽然elementui.iview等开源UI组件库层出不穷,但官方库毕竟不可能满足全部需求,因此我们可以 ...
- android 监测属性值变化,Android 的系统属性(SystemProperties)分析 | Bob's Blo...
以下分析以android 4.03为基础 前言 Android的系统属性相当于windows的注册表,由key和value组成,且都是核心系统的一个基本机制.相对于windows的注册表,Androi ...
- android按钮点击变化,Android实现按钮点击效果(第一次点击变色,第二次恢复)...
1.首先创建一个按钮 android:id="@+id/click" android:layout_width="fill_parent" android:la ...
- 怎么用Android做登录界面,利用Android怎么制作一个APP登录界面
利用Android怎么制作一个APP登录界面 发布时间:2020-12-02 17:09:10 来源:亿速云 阅读:79 作者:Leah 这期内容当中小编将会给大家带来有关利用Android怎么制作一 ...
- Android微信通讯录界面代码,Android中使用Expandablelistview实现微信通讯录界面
之前的博文<Android 中使用ExpandableListView 实现分组的实例>我简单介绍了使用ExpandableListView实现简单的好友分组功能,今天我们针对之前的所做的 ...
最新文章
- 树莓派发布全新计算模块CM3,性能提升10倍
- 前端利用JS导出数据到Excel表 数字是文本类型 无法计算
- vb.net 文本框为空提示,一键清空文本框所有内容
- WPF中的数据绑定Data Binding使用小结
- Eclipse自动补全功能轻松设置 || 不需要修改编辑任何文件
- 信息学奥赛一本通C++语言——1087:级数求和
- Skip level 1 on 1
- 10 亿产业基金加持,让精准定位在物联网应用中实现无限可能!
- Winform开发全套31个UI组件开源共享
- 离线下载Express 2015 for Windows 10
- wordpress插件_适用于作家和写作的最佳WordPress插件
- 服务器虚拟化的几种方式,服务器虚拟化究竟应当选择哪种方式?
- ArchiSteamFarmV3.0使用服务器steam云挂卡
- 【颗粒归仓】(一)jQuery easyui datagrid 的数据加载
- Scrum敏捷开发实践之有道云笔记
- 在线购物系统 分析类或问题域类图
- java怎么往list里存int,Java中List、Integer[]、int[] 的相互转换
- Vegas中的Vignette暗角视频特效如何使用?
- (附源码)ssm高校社团管理系统 毕业设计 234162
- 后端开发——Flask框架从入门到入坟(终章)