本文介绍了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定时器定时器的停止和重启实现代码