前日,一小伙伴问我一个问题,说它解决了半天都没解决这个问题,截图如下:

 

大概楼主理解如下:

如果在应用中有一个判断wifi的开关和一个当前音量大小的seekbar以及一个获取当前电量多少的按钮,想知道如果按home键后调整了wifi开关信息以及媒体音量信息,再切换到前台UI如何才会实时刷新。其实这个问题不难解决,如果你了解activity的生命周期,只需要把设置开关和seekbar的信息放在onResume中就好了,因为无论是锁屏后打开或者是切换后台再前台都是会调用onResume的。但不由得滋生一个问题,大家都知道APP在前台的情况下用户依然是可以下拉状态栏设置Wifi开关信息的,对于音量信息也是可以侧边增减,那APP一直在前台,生命周期明显是无法实时更新了,那我们应该如何解决呢?没错,没当改变系统属性的时候,都会发出系统广播,我们只需要去写一个接收器,并根据它做响应的操作就好了。

 

分析至此,楼主就把给这位小伙伴写的一些代码分享给大家,也可以帮助不太熟悉的小伙伴更加了解android的广播以及回调机制。对于还不太明白java的回调是什么意思的小伙伴,也可以看看。

 

1)由于要使用到系统属性,所以先申明权限。

复制代码
1 <!--wifi管理必备权限--> 2 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 3 <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/> 4 5 <uses-permission android:name="an
        
		

网友评论