1 .代码分析1.1传统编程/p 1.2响应编程/p 2代码2.1传统编程
publicclasstaskaimplementsrunnable { @ overridepublicvoidrun (()//dosomething ) } publicclasstaskbimplementsrunable { @ dosomething ) }公共类别时间{ @ overridepublicvoidrun (()/dosomething ) }公共类别时间private Timer () handlerthreadthread=new handler thread ) ) timer ); thread.start (; mhandler=new handler (thread.get looper ) ); }公共静态时间get () { return INSTANCE; } public void post (runnable runnable ) mhandler.post (runnable ); } publicvoidpostdelayed (runnable runnable,long delay ) mhandler.post delayed (runnable,delay ); }} Timer.get ().post(newrunnable ) ) { @Override public void run ) ) { new TaskA ).run ); timer.get(.postdelayed ) newrunnable ) ) { @Override public void run ) ) { new TaskB ).run ); timer.get(.postdelayed ) newrunnable ) ) { @Override public void run ) ) { new TaskC ).run ); (,1000 ); (,1000 ); (); 2.2响应编程
publicclassstreamtimerimplementsrunnable { privatelisttaskmtasks=new linked list (; publicstreamtimer (} publicstreamtimernext ) runnable runnable (return next ) runnable,0 ); } publicstreamtimernext (runnable runnable,long delay ) tasktask=newtask ) runnable,delay ); mtasks.add(task ); return this; }公共void startup () { startNextTimer ); } private void startNextTimer () (if ) mtasks.isempty ) ) { return; }tasktask=mtasks.get(0; Timer.get ().postDelayed(this,task.delay ); } @Override public void run (() tasktask=mtasks.remove ) ) 0; task.runnable.run (; startNextTimer (; } privateclasstask { runnable runnable; 长延迟; task(runnablerunnable,long delay ) { this.runnable=runnable; this.delay=delay; }}newstreamtimer((.next ),newtaska ) )、newtaskb )、1000 )、next )、1000 )、startup );