diff options
Diffstat (limited to 'src/com/android/contacts/common/vcard/ImportVCardActivity.java')
-rwxr-xr-x[-rw-r--r--] | src/com/android/contacts/common/vcard/ImportVCardActivity.java | 30 |
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; + } + } } |