BroadCastReceiver 被多次调用

问题描述 投票:0回答:0

我的问题是,在我打开和关闭位置后,我的 GpsLocationReceiver 类中的消息出现了几次。 我使用动态意图过滤器

val receiver: BroadcastReceiver = GpsLocationReceiver()


override fun onPause() {
    super.onPause()
    unregisterReceiver(receiver)
}


override fun onResume() {
    super.onResume()
    IntentFilter("android.location.PROVIDERS_CHANGED").also {
        registerReceiver(receiver,it)
    }

}

GpsLocationReceiver.tk:

 class GpsLocationReceiver: BroadcastReceiver() {

 override fun onReceive(context: Context?, intent: Intent?) {


     var gpsModeEnabled = intent?.getBooleanExtra("state",false) ?: return

     if(gpsModeEnabled)
     {
         Toast.makeText(
             context, "GPS IS ON",
             Toast.LENGTH_SHORT
         ).show()
     }
     else{
         Toast.makeText(
             context, "GPS IS OFF",
             Toast.LENGTH_SHORT
         ).show()
     }


  }

}

android kotlin broadcastreceiver
© www.soinside.com 2019 - 2024. All rights reserved.