2016-09-27 42 views
2

我創建了一個活動並實現了Android的基本步驟計數器。步驟計數器是否在後臺作爲默認值運行?

所有的代碼都在活動中,我沒有創建任何服務或類似的東西。

所以問題是,應用程序是否在後臺運行,即使我沒有爲它創建代碼?

我做了一些測試,它似乎確實如此,但我不是100%確定如果是這種情況。

這裏是我的代碼:

private TextView count; 

    // is inside my onCreate 
    count = (TextView) findViewById(R.id.mTextField); 
    sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); 


    @Override 
    protected void onResume() { 
     super.onResume(); 
     activityRunning = true; 
     Sensor countSensor = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER); 
     if(countSensor != null) { 
      sensorManager.registerListener(this, countSensor, SensorManager.SENSOR_DELAY_UI); 
     } else { 
      Toast.makeText(this, "Count sensor not available!", Toast.LENGTH_LONG).show(); 
     } 
    } 

    @Override 
    protected void onPause() { 
     super.onPause(); 
     activityRunning = false; 
    } 

    @Override 
    public void onSensorChanged(SensorEvent event) { 
     if(activityRunning) { 
      count.setText(String.valueOf(event.values[0])); 
     } 
    } 

我知道,onPause()方法設置activityRunning = false,但是我仍然可以關閉/鎖定的屏幕,並四處走動,並得到步驟。

我覺得有點混亂。

回答

1

你需要,如果你註銷你需要用你的boolean activityRunning

+0

好了,走的是聽衆的將刪除在後臺運行的傳感器中

@Override protected void onPause() { super.onPause(); sensorManager.unregisterListener(this); } 

另外要unrigester您的傳感器? – Daniel

+0

是的,它會停止收聽。 – Enzokie

+0

所以,現在我的代碼,它會運行,如果我按下我的手機大按鈕,這將最大限度地減少我的應用程序。如果我想創建一個計算我的步驟的應用程序,那麼我將不需要註銷呢? ..這是我的最後一個問題,我沒有更多的:) – Daniel