summaryrefslogtreecommitdiffstats
path: root/src/com/android/contacts/common/vcard/ImportVCardActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/contacts/common/vcard/ImportVCardActivity.java')
-rwxr-xr-x[-rw-r--r--]src/com/android/contacts/common/vcard/ImportVCardActivity.java30
1 files changed, 23 insertions, 7 deletions
diff --git a/src/com/android/contacts/common/vcard/ImportVCardActivity.java b/src/com/android/contacts/common/vcard/ImportVCardActivity.java
index 9da8c0b7..0bc0132b 100644..100755
--- a/src/com/android/contacts/common/vcard/ImportVCardActivity.java
+++ b/src/com/android/contacts/common/vcard/ImportVCardActivity.java
@@ -110,6 +110,8 @@ public class ImportVCardActivity extends Activity {
private Handler mHandler = new Handler();
+ private boolean mBind = false;
+
// Runs on the UI thread.
private class DialogDisplayer implements Runnable {
private final int mResId;
@@ -153,14 +155,18 @@ public class ImportVCardActivity extends Activity {
@Override
public void onServiceConnected(ComponentName name, IBinder binder) {
mService = ((VCardService.MyBinder) binder).getService();
- Log.i(LOG_TAG,
- String.format("Connected to VCardService. Kick a vCard cache thread (uri: %s)",
- Arrays.toString(mVCardCacheThread.getSourceUris())));
- mVCardCacheThread.start();
+ mBind = true;
+ if (mVCardCacheThread != null) {
+ Log.i(LOG_TAG, String.format(
+ "Connected to VCardService. Kick a vCard cache thread (uri: %s)",
+ Arrays.toString(mVCardCacheThread.getSourceUris())));
+ mVCardCacheThread.start();
+ }
}
@Override
public void onServiceDisconnected(ComponentName name) {
+ mBind = false;
Log.i(LOG_TAG, "Disconnected from VCardService");
}
}
@@ -284,9 +290,10 @@ public class ImportVCardActivity extends Activity {
} finally {
Log.i(LOG_TAG, "Finished caching vCard.");
mWakeLock.release();
- unbindService(mConnection);
- mProgressDialogForCachingVCard.dismiss();
- mProgressDialogForCachingVCard = null;
+ if (mProgressDialogForCachingVCard != null) {
+ mProgressDialogForCachingVCard.dismiss();
+ mProgressDialogForCachingVCard = null;
+ }
finish();
}
}
@@ -766,4 +773,13 @@ public class ImportVCardActivity extends Activity {
}
});
}
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (mBind) {
+ unbindService(mConnection);
+ mBind = false;
+ }
+ }
}