1

这是我的代码的一部分,它会随机振动一段时间。

public boolean dispatchTouchEvent(MotionEvent ev) {            
    SharedPreferences appSettings = PreferenceManager.getDefaultSharedPreferences(this);        
    boolean doVibration = appSettings.getBoolean("vibrationCue", true);      

    // determine whether estimation or cue mode is active        
    if (!currentlyEstimating) {          
        if (ev.getAction() == MotionEvent.ACTION_DOWN) {      
            Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);         
            // determine random timespan for cue(s)          
            initCueLength();          
            if (doVibration)             
            {             
                loopnum = 0;         
                while(loopnum < 5) {           
                     v.vibrate(cueLength);         
                    loopnum ++;         
                }         
            }
        }
    }
}

我希望振动重复例如五次。但是while循环不起作用。你能指导我有什么问题吗?

4

1 回答 1

3

问题是v.vibrate异步工作,即不等待指定的时间,所以这 5 次调用几乎立即发生,并且与一次调用具有相同的效果。

要获得所需的效果,请定义振动模式:

http://android.konreu.com/developer-how-to/vibration-examples-for-android-phone-development/

于 2012-08-20T08:28:41.367 回答