Timer、TimerTask的简单应用及如何解决多次调度相同任务。
1个回答
展开全部
1、Timer类用来干嘛滴?Timer是提供以指定的时间间隔执行某方法的这样一种机制,即如果想要实现一个定时发送数据,比如每隔3s中发送一次心跳报文,或者执行某个指定的方法,都可以考虑用Timer类来实现,不过要提出的是Timer类一边用来做一些比较简单又不耗时间的操作。据说是因为它执行的任务仍然在主线程里面(不确定,望牛人指出)。2、Timer类最常用的方法:cancel() //取消当然任务schedule(TimerTask task, long delay) //延时一段时间执行task任务schedule(TimerTask task, long delay, long period)//延时delay时间后,执行task任务,以后每隔peroid时间执行一次task任务。3、如何用?在Java中如何使用,代码如下:public class TimerTest{public static void main(String[] args){timerTest();}private static void timerTest(){final Timer timer = new Timer();TimerTask task = new TimerTask(){int i = 0;public void run(){System.out.println("次数====" + i++);if(i == 10){i = 0 ;timer.cancel();// timerTest();}}};timer.schedule(task, 1000, 1000);}}注: 注释掉蓝色字眼的timerTest();是用来解决多次调度执行相同任务实现滴。就如实现从0到10输出后,又要从0开始输出,这两次调度。就要用重新调用此方法来实现。Android里面,代码如下:public class TimerTestAndroidActivity extends Activity{Handler handler;TextView textView;Timer timer ;public void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);textView = (TextView) findViewById(R.id.textView1);playTimer();handler = new Handler(){int i = 0;public void handleMessage(Message msg){i = msg.what;textView.setText("The current number is " + i);if (i == 5){timer.cancel();playTimer();}}};}private void playTimer(){timer= new Timer();timer.schedule(new TimerTask(){ int i;public void run(){Message msg = new Message();msg.what = i++;handler.sendMessage(msg);}}, 1000, 1000); }}
威孚半导体技术
2024-08-19 广告
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层...
点击进入详情页
本回答由威孚半导体技术提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询