当覆盖接近传感器时,我只想显示单个吐司。使用下面的代码时,连续显示吐司。
这是我的代码.....
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)
{
}
}
答案 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();
}
}
}