某天需要一个监听网络变化的广播,想都没想就在清单文件里面注册了一个广播"android.net.conn.CONNECTIVITY_CHANGE",后来吧,试了多次发现无效!
在查询资料以后,发现在 Android 8.0 之后取消了很多静态广播,所以使用该方法要注意系统的版本。就使用了动态注册:
package com.example.mThermometry.receiver
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.util.Log
import app.SpeechApp
import com.example.mThermometry.manger.InitializationManger
object NetStateReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
Log.e("NetStateReceiver","====================================="+intent.action)
}
fun mRegisterReceiver(){
val intentFilter = IntentFilter()
intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE")
SpeechApp.mSpeechApp.registerReceiver(this, intentFilter)
}
fun mUnregisterReceiver(){
SpeechApp.mSpeechApp.unregisterReceiver(this)
}
}
使用:
NetStateReceiver.mRegisterReceiver()用完记得注销:
NetStateReceiver.mUnregisterReceiver()