Andorid歌词秀技术要点(1)SafetyTimer(2)
setTitle("hear me?"); //要做的事情。
}
});
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
timer.start(); //启动定时器
}
}
是不是好多了。这样的代码在Android里到处都是,关键是我们自己做的代码会不会做成这样的。
总结一下,其实我们想要的是:
	
	我们通过SaftyTimer封装了灰色的Timer,TimerTask,Handler的功能然后通过定义SaftyTimer:OnTimeListener为利用者提供实现所需功能的途径。
	 下面是时序图
	
	从图中可以很清楚的看到从LayerPlayerService出发的调用中除了生成新对象的2条线以外,只有StartTimer,OnTimer,StopTimer三条线。而SaftyTimer右侧的调用则相对会复杂很多。这就是封装的效果。
	直说了吧,这就是Observer的简化版。不难吧,但是实际工作中会这么做的恐怕还真就不多。
	这看似不大的一步,会从根本上改变我们的程序结构的。你认为呢?
	以下是源代码,请参考
	package LyricPlayer.xwg; 
	 
	import java.util.Timer; 
	import java.util.TimerTask; 
	 
	import android.os.Handler; 
	import android.os.Message; 
	import android.util.Log; 
	 
	public class SafetyTimer { 
	    private Timer mTimer = null; 
	    private Handler mHandler = null; 
	    private TimerTask mTask = null;  
	    private OnTimeListener mListener = null; 
	    private long mInterval = 0; //in milliseconds 
	    private static final String TAG = new String("SafetyTimer"); 
	     
	    //Observer接口定义 
	    public interface OnTimeListener{ 
	        public void OnTimer(); 
	    } 
	     
	    //创建定时器并指定Observer 
	    public SafetyTimer(long interval, OnTimeListener listener){ 
	        mInterval = interval; 
	        mListener = listener; 
	    } 
	     
	    //启动定时器 
	
相关新闻>>
- 发表评论
 - 
				
 
- 最新评论 进入详细评论页>>
 





