From 717213667a39871ec3bbc1a049fc8fca13f45b2a Mon Sep 17 00:00:00 2001 From: Georg Lukas Date: Wed, 6 Jan 2010 17:25:09 +0100 Subject: [PATCH] fix receiver leak --- src/de/duenndns/aprsdroid/APRSdroid.scala | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/de/duenndns/aprsdroid/APRSdroid.scala b/src/de/duenndns/aprsdroid/APRSdroid.scala index ad6dc28..0e84ad9 100644 --- a/src/de/duenndns/aprsdroid/APRSdroid.scala +++ b/src/de/duenndns/aprsdroid/APRSdroid.scala @@ -20,6 +20,14 @@ class APRSdroid extends Activity with LocationListener with OnClickListener { lazy val singleBtn = findViewById(R.id.singlebtn).asInstanceOf[Button] lazy val startstopBtn = findViewById(R.id.startstopbtn).asInstanceOf[Button] + lazy val locReceiver = new BroadcastReceiver() { + override def onReceive(ctx : Context, i : Intent) { + val l = i.getParcelableExtra(AprsService.LOCATION).asInstanceOf[Location] + onLocationChanged(l) + //status.setText(i.getParcelableExtra(AprsService.PACKET).asInstanceOf[String]) + } + } + var serviceRunning = false override def onCreate(savedInstanceState: Bundle) { @@ -29,16 +37,12 @@ class APRSdroid extends Activity with LocationListener with OnClickListener { singleBtn.setOnClickListener(this); startstopBtn.setOnClickListener(this); - registerReceiver(new BroadcastReceiver() { - override def onReceive(ctx : Context, i : Intent) { - val l = i.getParcelableExtra(AprsService.LOCATION).asInstanceOf[Location] - onLocationChanged(l) - } - }, new IntentFilter(AprsService.UPDATE)) + registerReceiver(locReceiver, new IntentFilter(AprsService.UPDATE)) } override def onDestroy() { super.onDestroy() + unregisterReceiver(locReceiver) } override def onLocationChanged(location : Location) {