连续螺纹监控硬件接近传感器

时间:2011-06-13 19:25:33

标签: android multithreading sensor background-process

我将如何实现在整个应用程序中运行的线程。我看过服务,但我很确定这不是我想要的。即使应用程序关闭,我也不希望线程不断检查。我只想在应用程序的后台运行一个线程(即使我在活动之间切换),以便不断检查用户是否已将手机提升到他/她的耳朵。如果用户那么它将执行一个动作。有这样的例子吗?

2 个答案:

答案 0 :(得分:5)

您不需要线程或服务。请参阅SensorManager的Android API文档中的示例。另外,请参阅下面的示例:

 public class SensorActivity extends Activity, implements SensorEventListener {
     private final SensorManager mSensorManager;
     private final Sensor mSensor;

     public SensorActivity() {
         mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
         mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
     }

     protected void onResume() {
         super.onResume();
         mSensorManager.registerListener(this, mSensor, SensorManager.SENSOR_DELAY_NORMAL);
     }

     protected void onPause() {
         super.onPause();
         mSensorManager.unregisterListener(this);
     }

     public void onAccuracyChanged(Sensor sensor, int accuracy) {
     }

     public void onSensorChanged(SensorEvent event) {
         // TODO: implement your action here.
     }
 }

答案 1 :(得分:1)

这最好作为服务执行。在您的活动开始时绑定到该服务,并在您的活动完成后解除绑定。服务应该在绑定时开始侦听,并在未绑定时停止。