Andorid歌词秀技术要点(1)SafetyTimer(2)

来源:未知 责任编辑:责任编辑 发表时间:2014-05-20 18:32 点击:

            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; 
    } 
     
    //启动定时器 

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • Android 完全退出程序
  • 原创:Android应用开发-Andorid歌词秀,含源码
  • android 屏幕保护
  • Android手机软件汉化教程---第四课 dex文件汉化
  • 众多Android 开源项目推荐,给力工作给力学习
  • Android Audio代码分析4
  • Android得到已安装的应用程序信息!
  • Android开发者指南(29) —— USB Host and Accessory
  • Android成长的幕后推手:工程师鲁宾
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1