Android定时器定时器的停止和重启实现代码

  

本文介绍了Android定时器定时器的停止和重启实现代码,分享给大家,具体如下:
  

  

7月份做了一个项目,利用自定义控件呈现一幅动画,当时使用定时器来控制时间,但是当停止开启时总是出现问题。一直在寻找合理的方法解决这个问题,一直没有找的到,最近终于找到了合理的方法来解决这个问题。
  

  

大家如何查询有关资料,一定知道计时器,timertask取消的方式是采用Timer.cancel()和mTimerTask.cancel(),可是大家发现这种发式取消后,再次开始计时器时,会报错

        致命的例外:主要   过程:com.example.zhongzhi。gate_control_scheme PID: 2472   . lang。IllegalStateException:定时器已经取消了。   java.util.Timer.sched (Timer.java: 397)   java.util.Timer.schedule (Timer.java: 248)   com.example.zhongzhi.gate_control_scheme.MainActivity.onClick (MainActivity.java: 401)   android.view.View.performClick (View.java: 5637)   android.view.View PerformClick.run美元(View.java: 22429)   android.os.Handler.handleCallback (Handler.java: 751)   android.os.Handler.dispatchMessage (Handler.java: 95)   android.os.Looper.loop (Looper.java: 154)   android.app.ActivityThread.main (ActivityThread.java: 6119)   在java.lang.reflect.Method。调用(本地方法)   com.android.internal.os.ZygoteInit MethodAndArgsCaller.run美元(ZygoteInit.java: 886)   com.android.internal.os.ZygoteInit.main (ZygoteInit.java: 776)   之前      

,这个问题的解决采用取消(),取消计时器后,还需要清空计时器。合理的代码应该是这样的:

        mTimer.cancel ();   mTimer=零;   mTimerTask.cancel ();    mTimerTask=零;      

关键的问题解决完了、下面给出我的案例代码Mainactivity.Java:

        公开课MainActivity延伸AppCompatActivity {      私有静态字符串标签=" TimerDemo”;   私人TextView mTextView=零;   私人按钮mButton_start=零;   私人按钮mButton_pause=零;   私人计时器mTimer=零;   私人TimerTask mTimerTask=零;   私人处理器mHandler=零;   私有静态int数=0;   私人布尔isPause=false;   私人布尔isStop=true;   私有静态int延迟=1000;//1   私有静态int期=1000;//1   私有静态最终int UPDATE_TEXTVIEW=0;      @Override   公共空间>   & lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比;   & lt; LinearLayout xmlns: android=" http://schemas.android.com/apk/res/android "   android: layout_width="宽和"   android: layout_height="宽和"   面向android:=按怪薄北?   & lt; TextView   android: id=癅 + id/mytextview”   android: layout_width="宽和"   android: layout_height=" wrap_content "   android:重力="中心"   android:文本=癅string/数量”/比;      LinearLayout & lt;   android: layout_width="宽和"   android: layout_height=" wrap_content "   android:重力="中心"   面向android:="水平"比;      & lt;按钮   android: id=癅 + id/mybutton_start”   android: layout_width=" wrap_content "   android: layout_height=" wrap_content "   android:文本=癅string/开始”/比;      & lt;按钮   android: id=癅 + id/mybutton_pause”   android: layout_width=" wrap_content "   android: layout_height=" wrap_content "   android:文本=癅string/暂停/比;   & lt;/LinearLayout>   & lt;/LinearLayout>      之前      

字符串部分代码:

        & lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比;   & lt; resources>   & lt;字符串名称=" app_name "祝辞TimerDemo   & lt;字符串名称="数量"祝辞0 & lt;/string>   & lt;字符串名称="开始"祝辞start   & lt;字符串名称=巴V埂弊4莝top   & lt;字符串名称=霸萃!弊4莗ause   & lt;字符串名称="恢复"祝辞resume   & lt;/resources>      

上面就是我的源代码,如果大家有什么问题可以留言进行探讨。

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

Android定时器定时器的停止和重启实现代码