我正在尝试开发类似小图片的游戏。我的问题是我想在一段时间后完成游戏。例如在第1级我们有10秒钟来匹配图片。我也希望显示剩余时间。我将感谢任何帮助。
答案 0 :(得分:4)
由于您还想显示倒计时,我建议使用CountDownTimer。这有一些方法可以在每个“tick”处执行操作,这可以是您在构造函数中设置的间隔。并且它的方法在UI Thread
上运行,因此您可以轻松更新TextView
等...
使用onFinish()
方法,您可以为finish()
拨打Activity
或进行任何其他适当的操作。
See this answer for an example
使用更清晰的示例进行编辑
这里我有一个内部类extends CountDownTimer
@Override
public void onCreate(Bundle savedInstanceState) {
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.some_xml);
// initialize Views, Animation, etc...
// Initialize the CountDownClass
timer = new MyCountDown(11000, 1000);
}
// inner class
private class MyCountDown extends CountDownTimer
{
public MyCountDown(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
frameAnimation.start();
start();
}
@Override
public void onFinish() {
secs = 10;
// I have an Intent you might not need one
startActivity(intent);
YourActivity.this.finish();
}
@Override
public void onTick(long duration) {
cd.setText(String.valueOf(secs));
secs = secs - 1;
}
}
答案 1 :(得分:0)
@nKn很好地描述了它。
但是,如果你不想乱搞Handler。您始终可以通过编写以下内容来延迟系统代码的进度:
Thread.sleep(time_at_mili_seconds);
你可能需要用try-catch包围它,你可以通过Source->轻松添加它。环绕 - >尝试&捉。
答案 2 :(得分:0)
您可以使用postDelayed()
的{{1}}方法...传递Handler
和特定时间,之后Thread
将执行如下...
Thread
然后调用private Handler mTimerHandler = new Handler();
private Runnable mTimerExecutor = new Runnable() {
@Override
public void run() {
//here, write your code
}
};
postDelayed()
方法,在指定时间后执行,如下所示...
Handler