Android 如何在不使用倒计时的情况下创建倒计时时钟
所以基本上我想我已经用倒计时器尝试了所有可能的方法,但是我得到的最好的还不够好。我要做的就是为一个游戏应用程序显示一个倒计时,一旦时间达到0,它就会启动一个活动(startActivity),我从那里得到了它。现在,在我得到“只用倒计时”之前,我会说我已经让它几乎完美地工作了。CountdowntTimer每秒设置一个视图,甚至在它达到0时启动活动,但如果你在计时器启动后点击后退按钮,它将继续运行(16000毫秒)并强制关闭应用程序,我假设是因为CountdowntTimer没有在暂停或停止时取消它的方法 现在我听说了使用处理程序和计时器来代替TimerTask。每个人似乎都说他们有合适的“cancel();”或“removeCallback”方法。但我看不到任何地方有这样的例子 所以,我想总结一下,我需要你们的帮助,至少是告诉我你们(你们所有优秀的天才程序员)将如何去做。长话短说,能够在时钟敲到0时启动活动,并且能够随时取消 在将我的应用程序发送到市场之前,这是我最不需要做的事情。Android 如何在不使用倒计时的情况下创建倒计时时钟,android,timer,countdownevent,Android,Timer,Countdownevent,所以基本上我想我已经用倒计时器尝试了所有可能的方法,但是我得到的最好的还不够好。我要做的就是为一个游戏应用程序显示一个倒计时,一旦时间达到0,它就会启动一个活动(startActivity),我从那里得到了它。现在,在我得到“只用倒计时”之前,我会说我已经让它几乎完美地工作了。CountdowntTimer每秒设置一个视图,甚至在它达到0时启动活动,但如果你在计时器启动后点击后退按钮,它将继续运行(16000毫秒)并强制关闭应用程序,我假设是因为CountdowntTimer没有在暂停或停止时取
提前谢谢各位 在执行启动的活动中:
public class YourActivity extends Activity {
private Runnable runnable = new Runnable(){
@Override
public void run() {
startActivity(new Intent(YourActivity.this, YourOtherActivity.class));
}};
private Handler handler = new Handler();
@Override public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.linearlayoutwithbutton);
Button button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
stopTimer();
}
});
startTimer();
}
private void startTimer(){ handler.postDelayed(runnable, 16000); }
private void stopTimer(){ handler.removeCallbacks(runnable); }
}
linearlayoutwithbutton.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearlayout"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<button android:id="@+id/button1"
android:text="Cancel" />
</LinearLayout>
您可以通过覆盖
onStop()
函数来取消倒计时
@Override
protected void onStop()
{
super.onStop();
countdowntimer.cancel();
}
发布有关如何创建倒计时以及计时器达到0时如何启动活动的代码。为什么不处理“后退”按钮并执行计时器。取消()?这将使计时器停止计数。您还需要在onPause()中执行此操作,因此如果活动暂停,它会停止计时器(除非您希望它在活动暂停时运行…)在我的一个应用程序中,我使用countdowntimer启动游戏,处理回合之间的事务,并为回合计时-它可以很好地工作,可以出于任何原因在任意点取消。(他们接到电话,按home键,按cancel键,回合提前结束等等)引用“我假设因为countdowntimer没有在Pause或onStop上取消它的方法。”如果你将计时器声明为成员变量,你可以在onPause或onStop(或其他任何地方)中执行mYourTimer.cancel()@jkhouw1非常感谢您的回复,非常有意义!现在就试试吧。