DataConnectionTracker cleanup when disposed.

Change-Id: I4db442ae110531f33280ceb626fc260d392a1bd5
This commit is contained in:
Ramesh Sudini
2011-03-28 10:59:42 -07:00
committed by Wink Saville
parent e7cedad2b8
commit 3bbe33d703
3 changed files with 10 additions and 2 deletions

View File

@@ -247,6 +247,9 @@ public abstract class DataConnectionTracker extends Handler {
/* Currently active APN */
protected ApnSetting mActiveApn;
/* Once disposed dont handle any messages */
protected boolean mIsDisposed = false;
protected BroadcastReceiver mIntentReceiver = new BroadcastReceiver ()
{
@Override
@@ -327,6 +330,7 @@ public abstract class DataConnectionTracker extends Handler {
}
public void dispose() {
mIsDisposed = true;
mPhone.getContext().unregisterReceiver(this.mIntentReceiver);
}

View File

@@ -118,6 +118,8 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
@Override
public void dispose() {
cleanUpConnection(false, null);
super.dispose();
// Unregister from all events
@@ -861,7 +863,7 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
@Override
public void handleMessage (Message msg) {
if (!mPhone.mIsTheCurrentActivePhone) {
if (!mPhone.mIsTheCurrentActivePhone || mIsDisposed) {
log("Ignore CDMA msgs since CDMA phone is inactive");
return;
}

View File

@@ -192,6 +192,8 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
@Override
public void dispose() {
cleanUpAllConnections(false, null);
super.dispose();
//Unregister for all events
@@ -1791,7 +1793,7 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
public void handleMessage (Message msg) {
if (DBG) log("GSMDataConnTrack handleMessage "+msg);
if (!mPhone.mIsTheCurrentActivePhone) {
if (!mPhone.mIsTheCurrentActivePhone || mIsDisposed) {
log("Ignore GSM msgs since GSM phone is inactive");
return;
}