Don't dispose of services if they don't need disposing

Was causing random crashes intermittently because we were trying
to unbind services that were not bound.
This commit is contained in:
YuviPanda 2013-02-23 02:26:27 +05:30
parent 48b292ed25
commit 2e421b5d60
2 changed files with 10 additions and 2 deletions

View file

@ -46,9 +46,11 @@ public class ShareActivity extends AuthenticatedActivity {
private Uri mediaUri; private Uri mediaUri;
private UploadService uploadService; private UploadService uploadService;
private boolean isUploadServiceConnected;
private ServiceConnection uploadServiceConnection = new ServiceConnection() { private ServiceConnection uploadServiceConnection = new ServiceConnection() {
public void onServiceConnected(ComponentName componentName, IBinder binder) { public void onServiceConnected(ComponentName componentName, IBinder binder) {
uploadService = (UploadService) ((HandlerService.HandlerServiceLocalBinder)binder).getService(); uploadService = (UploadService) ((HandlerService.HandlerServiceLocalBinder)binder).getService();
isUploadServiceConnected = true;
} }
public void onServiceDisconnected(ComponentName componentName) { public void onServiceDisconnected(ComponentName componentName) {
@ -191,7 +193,9 @@ public class ShareActivity extends AuthenticatedActivity {
@Override @Override
protected void onDestroy() { protected void onDestroy() {
super.onDestroy(); super.onDestroy();
unbindService(uploadServiceConnection); if(isUploadServiceConnected) {
unbindService(uploadServiceConnection);
}
} }
@Override @Override

View file

@ -46,9 +46,11 @@ public class ContributionsActivity
} }
private UploadService uploadService; private UploadService uploadService;
private boolean isUploadServiceConnected;
private ServiceConnection uploadServiceConnection = new ServiceConnection() { private ServiceConnection uploadServiceConnection = new ServiceConnection() {
public void onServiceConnected(ComponentName componentName, IBinder binder) { public void onServiceConnected(ComponentName componentName, IBinder binder) {
uploadService = (UploadService) ((HandlerService.HandlerServiceLocalBinder)binder).getService(); uploadService = (UploadService) ((HandlerService.HandlerServiceLocalBinder)binder).getService();
isUploadServiceConnected = true;
} }
public void onServiceDisconnected(ComponentName componentName) { public void onServiceDisconnected(ComponentName componentName) {
@ -62,7 +64,9 @@ public class ContributionsActivity
@Override @Override
protected void onDestroy() { protected void onDestroy() {
super.onDestroy(); super.onDestroy();
unbindService(uploadServiceConnection); if(isUploadServiceConnected) {
unbindService(uploadServiceConnection);
}
} }
private String CONTRIBUTION_SELECTION = ""; private String CONTRIBUTION_SELECTION = "";