我想在覆盖接近传感器时只显示单个吐司

时间:2018-02-08 13:34:56

标签: android

当覆盖接近传感器时,我只想显示单个吐司。使用下面的代码时,连续显示吐司。
这是我的代码.....

class sense extends Activity implements SensorEventListener
{
    private SensorManager mSensorManager;
    private Sensor mSensor;
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    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 onSensorChanged(SensorEvent event)
{
    if (event.values[0] == 0)
    {
            Toast.makeText(sense.this,"near", Toast.LENGTH_SHORT).show();
    }
}
public void onAccuracyChanged(Sensor sensor, int accuracy)
{
}
}

2 个答案:

答案 0 :(得分:0)

您需要设置一个标志,如时间戳,将设置为显示Toast时的当前时间。第二次检查以确保当前时间 - 最后一次超过某个阈值(5分钟或您选择的任何时间)时,如果您要显示吐司,如果超过阈值,则显示吐司。如果没有,那么就不要露出祝酒词。

答案 1 :(得分:0)

将标志设置为Toast Single time

    boolean flag = false;
    public void onSensorChanged(SensorEvent event) {
    if(event.sensor.getType() == sensor.TYPE_PROXIMITY){
        if(event.values[0] == 0){
          flag=true;
          if(flag == true){
         Toast.makeText(sense.this,"near", Toast.LENGTH_SHORT).show();
         } 
        }
    }