Timer与TimerTask(Java实现)
[java] view plaincopy
-
public class timerTask extends Activity{
-
private int recLen = 11;
-
private TextView txtView;
-
Timer timer = new Timer();
-
public void onCreate(Bundle savedInstanceState){
-
super.onCreate(savedInstanceState);
-
setContentView(R.layout.timertask);
-
txtView = (TextView)findViewById(R.id.txttime);
-
timer.schedule(task, 1000, 1000); // timeTask
-
}
-
TimerTask task = new TimerTask() {
-
@Override
-
public void run() {
-
runOnUiThread(new Runnable() { // UI thread
-
@Override
-
public void run() {
-
recLen--;
-
txtView.setText(""+recLen);
-
if(recLen < 0){
-
timer.cancel();
-
txtView.setVisibility(View.GONE);
-
}
-
}
-
});
-
}
-
};
-
}
方法二
TimerTask与Handler(不用Timer的改进型)
[java] view plaincopy
-
public class timerTask extends Activity{
-
private int recLen = 11;
-
private TextView txtView;
-
Timer timer = new Timer();
-
public void onCreate(Bundle savedInstanceState){
-
super.onCreate(savedInstanceState);
-
setContentView(R.layout.timertask);
-
txtView = (TextView)findViewById(R.id.txttime);
-
timer.schedule(task, 1000, 1000); // timeTask
-
}
-
final Handler handler = new Handler(){
-
@Override
-
public void handleMessage(Message msg){
-
switch (msg.what) {
-
case 1:
-
txtView.setText(""+recLen);
-
if(recLen < 0){
-
timer.cancel();
-
txtView.setVisibility(View.GONE);
-
}
-
}
-
}
-
};
-
TimerTask task = new TimerTask() {
-
@Override
-
public void run() {
-
recLen--;
-
Message message = new Message();
-
message.what = 1;
-
handler.sendMessage(message);
-
}
-
};
-
}
方法三
[java] view plaincopy
-
Handler与Message(不用TimerTask)
-
public class timerTask extends Activity{
-
private int recLen = 11;
-
private TextView txtView;
-
public void onCreate(Bundle savedInstanceState) {
-
super.onCreate(savedInstanceState);
-
setContentView(R.layout.timertask);
-
txtView = (TextView)findViewById(R.id.txttime);
-
Message message = handler.obtainMessage(1); // Message
-
handler.sendMessageDelayed(message, 1000);
-
}
-
final Handler handler = new Handler(){
-
public void handleMessage(Message msg){ // handle message
-
switch (msg.what) {
-
case 1:
-
recLen--;
-
txtView.setText("" + recLen);
-
if(recLen > 0){
-
Message message = handler.obtainMessage(1);
-
handler.sendMessageDelayed(message, 1000); // send message
-
}else{
-
txtView.setVisibility(View.GONE);
-
}
-
}
-
super.handleMessage(msg);
-
}
-
};
-
}
方法四
Handler与Thread(不占用UI线程)
[java] view plaincopy
-
public class timerTask extends Activity{
-
private int recLen = 0;
-
private TextView txtView;
-
public void onCreate(Bundle savedInstanceState){
-
super.onCreate(savedInstanceState);
-
setContentView(R.layout.timertask);
-
txtView = (TextView)findViewById(R.id.txttime);
-
new Thread(new MyThread()).start(); // start thread
-
}
-
final Handler handler = new Handler(){ // handle
-
public void handleMessage(Message msg){
-
switch (msg.what) {
-
case 1:
-
recLen++;
-
txtView.setText("" + recLen);
-
}
-
super.handleMessage(msg);
-
}
-
};
-
public class MyThread implements Runnable{ // thread
-
@Override
-
public void run(){
-
while(true){
-
try{
-
Thread.sleep(1000); // sleep 1000ms
-
Message message = new Message();
-
message.what = 1;
小福利:
在当下这个碎片化信息环境的时代,很多资源都可以在网络上找到,只取决于你愿不愿意找或是找的方法对不对了
很多朋友不是没有资料,大多都是有几十上百个G,但是杂乱无章,不知道怎么看从哪看起,甚至是看后就忘
如果大家觉得自己在网上找的资料非常杂乱、不成体系的话,我也分享一套给大家,比较系统,我平常自己也会经常研读。
2021大厂最新Android面试真题解析
各个模块学习视频:如数据结构与算法
只有系统,有方向的学习,才能在段时间内迅速提高自己的技术。
这份体系学习笔记,适应人群:**第一,**学习知识比较碎片化,没有合理的学习路线与进阶方向。**第二,**开发几年,不知道如何进阶更进一步,比较迷茫。第三,到了合适的年纪,后续不知道该如何发展,转型管理,还是加强技术研究。如果你有需要,我这里恰好有为什么,不来领取!说不定能改变你现在的状态呢!点赞+评论即可获得!
或直接点击这里前往我的GitHub中下载,就可以白嫖啦,记得给文章点个赞哦。