public void onClick(View v) { int id = v.getId(); Intent intent = new Intent(); switch (id) { case R.id.logcontrol_start: long loggerTrackId = mLoggerServiceManager.startGPSLogging(null); // Start a naming of the track Intent namingIntent = new Intent(ControlTracking.this, NameTrack.class); namingIntent.setData(ContentUris.withAppendedId(Tracks.CONTENT_URI, loggerTrackId)); startActivity(namingIntent); // Create data for the caller that a new track has been started ComponentName caller = ControlTracking.this.getCallingActivity(); if (caller != null) { intent.setData(ContentUris.withAppendedId(Tracks.CONTENT_URI, loggerTrackId)); setResult(RESULT_OK, intent); } break; case R.id.logcontrol_pause: mLoggerServiceManager.pauseGPSLogging(); setResult(RESULT_OK, intent); break; case R.id.logcontrol_resume: mLoggerServiceManager.resumeGPSLogging(); setResult(RESULT_OK, intent); break; case R.id.logcontrol_stop: mLoggerServiceManager.stopGPSLogging(); setResult(RESULT_OK, intent); break; default: setResult(RESULT_CANCELED, intent); break; } finish(); }