@Override public void onSensorChanged(final SensorEvent event) { steps = (int) event.values[0]; if (WAIT_FOR_VALID_STEPS && steps > 0) { WAIT_FOR_VALID_STEPS = false; Database db = Database.getInstance(this); if (db.getSteps(Util.getToday()) == Integer.MIN_VALUE) { int pauseDifference = steps - getSharedPreferences("pedometer", Context.MODE_MULTI_PROCESS) .getInt("pauseCount", steps); db.insertNewDay(Util.getToday(), steps - pauseDifference); if (pauseDifference > 0) { // update pauseCount for the new day getSharedPreferences("pedometer", Context.MODE_MULTI_PROCESS) .edit() .putInt("pauseCount", steps) .commit(); } reRegisterSensor(); } db.saveCurrentSteps(steps); db.close(); updateNotificationState(); startService(new Intent(this, WidgetUpdateService.class)); } }