有关线程的基本知识很多博客都有详细介绍:线程超详细教程。在移动端的开发过程中,线程经常用到。在以前做过的项目中记得要获得网络超时时执行的操作,记得当时我就是写了个定时器来解决的,下面上一段线程实现控件隐藏的功能。类似QQ空间点赞时那个小手图标。
new Handler().postDelayed(new Runnable() {
public void run() {
tv.setVisibility(View.GONE);
}
}, 1000);
在方法run中实现控件的隐藏,然后设置隐藏时间为1000ms即一秒。
然后在上一段项目中用到过的线程的开启和停止的方法,当然了这是在thread.cancle不起作用的情况下用到的。
/**线程休眠时间*/
private long timeout = 180000;
private Timer timer = null;
private TimerTask timeTask;
/**
* 开始线程
*/
private void startThread() {
if (timer == null) {
timer = new Timer();
}
if (timeTask == null) {
timeTask = new TimerTask() {
public void run() {
Message msg = new Message();
msg.what = 1;
mHandler.sendMessage(msg);
timer.cancel();
timer.purge();
}
};
}
if (timer != null && timeTask != null) {
timer.schedule(timeTask, timeout, 1);
}
}
/**
* 停止线程
*/
private void stopThread() {
if (timer != null) {
timer.cancel();
timer = null;
}
if (timeTask != null) {
timeTask.cancel();
timeTask = null;
}
}