首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让方法每隔一次什么都不做?

如何让方法每隔一次什么都不做?
EN

Stack Overflow用户
提问于 2015-11-21 20:42:53
回答 1查看 279关注 0票数 0

我正在尝试制作一个应用程序,它只在接近传感器被覆盖时播放声音,但是当传感器未覆盖时,它会再次播放声音。

如何让它只在被覆盖时播放声音,而在未覆盖时不播放任何声音?

代码语言:javascript
复制
public class MainActivity extends ActionBarActivity {


SensorManager sm;
Sensor ProximitySensor;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    if (savedInstanceState == null) {
        getSupportFragmentManager().beginTransaction()
                .add(R.id.container, new PlaceholderFragment())
                .commit();
    }

    sm = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
    ProximitySensor = sm.getDefaultSensor(Sensor.TYPE_PROXIMITY);
    sm.registerListener(proximitySensorEventListener,
            ProximitySensor,
            SensorManager.SENSOR_DELAY_FASTEST);

}



SensorEventListener proximitySensorEventListener = new SensorEventListener() {
    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {

    }

    @Override
    public void onSensorChanged(SensorEvent event) {
        if (event.sensor.getType() == Sensor.TYPE_PROXIMITY) {
                call();
        }

    }
};

    private void call() {
        ImageView im = (ImageView) findViewById(R.id.nfcoff);
        ImageView imm = (ImageView) findViewById(R.id.buz);

        if (im.getVisibility() == View.INVISIBLE && imm.getVisibility() == View.VISIBLE) {
            mp = MediaPlayer.create(this, R.raw.ovnoise);
            mp.start();
            mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                @Override
                public void onCompletion(MediaPlayer mp) {
                    mp.release();
                }
            });


        } else
            if (im.getVisibility() == View.INVISIBLE && imm.getVisibility() == View.INVISIBLE) {
                mp = MediaPlayer.create(this, R.raw.ovbus);
                mp.start();
                mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                    @Override
                    public void onCompletion(MediaPlayer mp) {
                        mp.release();
                    }
                });
            }
        }
EN

回答 1

Stack Overflow用户

发布于 2015-11-22 23:54:20

我添加了一个int count来计算该方法被调用的次数,并添加了一个if语句,声明该方法只有在int为奇数时才能被调用,这使得该方法每隔一次被调用都是无效的。

代码语言:javascript
复制
static int count = 0;

count++;

if (count % 2 != 0) {}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33843486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档