Skip to content

Instantly share code, notes, and snippets.

@amritlalsahu5
Created February 15, 2020 13:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save amritlalsahu5/6ae09599b2926ea2453ee616c4093823 to your computer and use it in GitHub Desktop.
Save amritlalsahu5/6ae09599b2926ea2453ee616c4093823 to your computer and use it in GitHub Desktop.
package com.codehangouts.sampleapp.memoryleak.kotlin.broadcast
import android.app.Activity
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.os.Bundle
import com.example.myapplication.R
class LocalBroadcastReceiverActivity : Activity() {
private var localBroadcastReceiver: BroadcastReceiver? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
private fun registerBroadCastReceiver() {
localBroadcastReceiver = object : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
//Write your code here.
}
}
registerReceiver(localBroadcastReceiver, IntentFilter("android.net.conn.CONNECTIVITY_CHANGE"))
}
override fun onStart() {
super.onStart()
registerBroadCastReceiver()
}
override fun onStop() {
super.onStop()
/*
* Broadcast receiver holds the implicit reference of Activity.Therefore even if activity is destroy,
* garbage collector will not be able to remove its instance.
* */
if (localBroadcastReceiver != null) {
unregisterReceiver(localBroadcastReceiver)
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment