2016-09-27 8 views
2

私はアクティビティを作成し、Androidから基本ステップカウンターを実装しました。ステップカウンターはバックグラウンドでデフォルトで実行されていますか?

すべてのコードはアクティビティの中にあり、サービスなどは作成しませんでした。

私はそれのためのコードを作成しませんでしたが、質問は、アプリはバックグラウンドで実行されますか?

私はいくつかのテストを行いましたが、それはそうだと思われますが、そうであるかどうかはわかりません。

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を設定することを承知していますが、しかし、私はまだターンオフ/ロック画面、および歩くと手順を取得することができます:

は、ここに私のコードです。

これはちょっと混乱しています。また、あなたが

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

中にセンサーをunrigesterする必要が

答えて

1

あなたがあなたのboolean activityRunning

+0

[OK]を使用する必要がない登録解除する場合は、そのリスナーの服用は、バックグラウンドで実行されているセンサーを削除しますか? – Daniel

+0

聴くのをやめます。 – Enzokie

+0

私のコードは今では私の携帯電話の大きなボタンを押すと実行され、それが自分のアプリケーションを最小限に抑えます。私のステップを数えたアプリケーションを作成したいのであれば、登録を解除する必要はありませんか? ..それは私の最後の質問であり、私はもうありません:) – Daniel

関連する問題