今天遇到一个很奇怪的现象,记录一下~~
我动态注册了一个网络状态改变的广播,然后注册完就接受到网络状态改变的广播,而我的手机实际上是没有网络状态变化的。
private val mNetWorkChangeReceiver = NetWorkChangeReceiver()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
register()
}
private fun register() {
val intentFilter = IntentFilter()
intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE")
registerReceiver(mNetWorkChangeReceiver, intentFilter)
}
override fun onDestroy() {
super.onDestroy()
unregisterReceiver(mNetWorkChangeReceiver)
}
class NetWorkChangeReceiver : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
Log.d("lyjLog", "intent action = ${intent!!.action}")
}
}
然后每次一启动应用就接受到了网络状态变化的广播。
很奇怪的现象,每次启动都会先收到一次,不过网络状态改变的情况下也能正常接受到。
ps:自测了一下,好像只有网络状态改变的广播会发生这种现象,监听其他广播都是正常的,比如电源插拔,开机等广播。
期待大神解释下~~