好久没写文章了,就随便记录点东西上来吧。嗯,写个android的倒计时吧,其实网上有很多的方式,我也看过一些,
其实这篇文章列举的方法和说明都算比较清晰了吧,但是这几个方法都只是写了如何实现计时,对于如何停止,恕本人愚昧,没有在文中看到,要知道计时如果不想占用UI主线程的话就得自己另开一个子线程,而开了线程总不能一直挂在那里吧,一开始我使用stop()方法,额,发现这个方法貌似被抛弃了?经过百毒,好吧,都在说stop()方式结束线程不安全,然后我就继续的找文章 - -(毕竟水平有限...)。
Android java 中如何优雅的结束线程 文中说了三种方式,第三种方式stop()我看到eclipse里面的代码删除线就不舒服!!!
interrupt()我试着用了一下,然而这个方法用了之后感觉也比较麻烦......
然后我就在代码中定义了一个结束标识,使用结束标识来停止线程,具体代码如下
// 计时器停止标识
private boolean stopFlag = false;
private int timer = 0;
/**
* 计时器
*/
Handler timerHandler = new Handler();
Runnable timerRunnable = new Runnable() {
@Override
public void run() {
// TODO 自动生成的方法存根
if (stopFlag == false) {
timer++;
L.d(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" + timer);
timerHandler.postDelayed(this, 1000);
//这里写的是一些我自己需要处理的东西
} else {
// 停止
L.d(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" + "停止");
return;
}
}
};