private void broadcastMeasurementEnd(MeasurementResult result) { Intent intent = new Intent(); intent.setAction(UpdateIntent.MEASUREMENT_PROGRESS_UPDATE_ACTION); intent.putExtra(UpdateIntent.TASK_PRIORITY_PAYLOAD, MeasurementTask.USER_PRIORITY); // A progress value greater than max progress to indicate the termination of a measurement intent.putExtra(UpdateIntent.PROGRESS_PAYLOAD, Config.MEASUREMENT_END_PROGRESS); if (result != null) { intent.putExtra(UpdateIntent.STRING_PAYLOAD, result.toString()); } else { String errorString = "Measurement " + realTask.getDescriptor() + " has failed"; errorString += "\nTimestamp: " + Calendar.getInstance().getTime(); intent.putExtra(UpdateIntent.ERROR_STRING_PAYLOAD, errorString); } MeasurementScheduler.this.sendBroadcast(intent); // Update the status bar once the user measurement finishes updateStatus(); }