Java 如何使函数在调用自身之前等待
Java,安卓工作室 我有一个功能,可以发牌,直到每个人都有牌。我想在发牌时播放一个声音,我想停止该功能,持续1或2秒,这样看起来就不会在0.1秒内发完所有的牌。 我已经试过:Java 如何使函数在调用自身之前等待,java,android,function,recursion,time,Java,Android,Function,Recursion,Time,Java,安卓工作室 我有一个功能,可以发牌,直到每个人都有牌。我想在发牌时播放一个声音,我想停止该功能,持续1或2秒,这样看起来就不会在0.1秒内发完所有的牌。 我已经试过: Thread.sleep(); 我不想冻结我的应用程序,我只想让递归函数在调用它自己之前等待。你可以播放声音,然后用Handler()在Handler中停止。postdeleed()。抽象示例如下所示: //code to play sound new Handler().postDelayed(new Runnabl
Thread.sleep();
我不想冻结我的应用程序,我只想让递归函数在调用它自己之前等待。你可以播放声音,然后用Handler()在Handler中停止。postdeleed()。抽象示例如下所示:
//code to play sound
new Handler().postDelayed(new Runnable(){
@Override
public void run(){
//stop the sound
}
}, 1000); // 1000 is in millisec which means 1 seconds.
例如,此代码将在1秒后播放并暂停音乐:
final MediaPlayer player = new MediaPlayer();
AssetFileDescriptor afd =
this.getResources().openRawResourceFd(R.raw.hangout_ringtone);
player.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(),
afd.getLength());
afd.close();
player.setAudioStreamType(AudioManager.STREAM_ALARM);
player.prepare();
player.start();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
mMediaPlayer.stop();
}
}, 1000);//millisec.
查看
处理程序。postDelayed
不要使用应用程序的主线程或UI线程&处理后台线程您可以休眠该线程,这样应用程序就不会冻结。除了向线程添加延迟之外,没有更好的解决方案吗?就像使用Asyn流程一样。谢谢,这就是我一直在寻找的答案!