浏览 7976 次
锁定老帖子 主题:Android 定时器真机测试
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-08-06
最后修改:2010-08-06
实验1:使用Java.util.Timer。 在onStart()创创建Timer,每5秒更新一次计数器,并启动。 mTimer = new Timer(); mTimer.schedule(new TimerTask() { @Override public void run() { ++mCount; mHandler.sendEmptyMessage(0); } }, 5*1000, 5*1000); 当连接USB线进行调试时,会发现一切工作正常,每5秒更新一次界面,即使是按下电源键,仍然会5秒触发一次。 当拔掉USB线,按下电源键关闭屏幕后,过一段时间再打开,发现定时器明显没有继续计数,停留在了关闭电源键时的数字。 实验2:使用AlarmService: 2.1通过AlarmService每个5秒发送一个广播,setRepeating时的类型为AlarmManager.ELAPSED_REALTIME。 AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE); am.setRepeating(AlarmManager.ELAPSED_REALTIME, firstTime, 5*1000, sender); 拔掉USB线,按下电源键,过一段时间再次打开屏幕,发现定时器没有继续计数。 2.2setRepeating是的类型设置为AlarmManager.ELAPSED_REALTIME_WAKEUP AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE); am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime, 5*1000, sender); 拔掉USB线,按下电源键,过一点时间再次打开屏幕,发现定时器一直在计数。 如此看来,使用WAKEUP才能保证自己想要的定时器一直工作,但是肯定会引起耗电量的增加。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-08-09
sohuzhenghao 写道 mypyg 写道 在Android上常用的定时器有两种,一种是Java.util.Timer,一种就是系统的AlarmService了。
实验1:使用Java.util.Timer。 在onStart()创创建Timer,每5秒更新一次计数器,并启动。 mTimer = new Timer(); mTimer.schedule(new TimerTask() { @Override public void run() { ++mCount; mHandler.sendEmptyMessage(0); } }, 5*1000, 5*1000); 当连接USB线进行调试时,会发现一切工作正常,每5秒更新一次界面,即使是按下电源键,仍然会5秒触发一次。 当拔掉USB线,按下电源键关闭屏幕后,过一段时间再打开,发现定时器明显没有继续计数,停留在了关闭电源键时的数字。 实验2:使用AlarmService: 2.1通过AlarmService每个5秒发送一个广播,setRepeating时的类型为AlarmManager.ELAPSED_REALTIME。 AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE); am.setRepeating(AlarmManager.ELAPSED_REALTIME, firstTime, 5*1000, sender); 拔掉USB线,按下电源键,过一段时间再次打开屏幕,发现定时器没有继续计数。 2.2setRepeating是的类型设置为AlarmManager.ELAPSED_REALTIME_WAKEUP AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE); am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime, 5*1000, sender); 拔掉USB线,按下电源键,过一点时间再次打开屏幕,发现定时器一直在计数。 如此看来,使用WAKEUP才能保证自己想要的定时器一直工作,但是肯定会引起耗电量的增加。 我们都是Java人 我之前是从北大青鸟培训出来的人, 在家乡做了1年Java开发, 没有学历, 只给2K, 加班无数不给加班费, 周末单休, 不签劳工合同, 没有保险。 无法忍受,之后来到上海做IT互联网猎头, 现在弄了一些Java技术交流群,号码是71532758 喜欢聊天 来加一下, 大家讨论一下技术,Java行情等,如果有喜欢聊天的朋友 共享一下Q群也好,只要500人的群。 我这里给大家推荐工作, 职位有 Java开发工程师 Java架构师 测试工程师 测试架构师 测试经理 ETL开发工程师 ETL架构师 运维工程师 mysql DBA 等等 有需要的加Q 280155570 真受不了。这个人大家对他有什么意见? |
|
返回顶楼 | |
发表时间:2010-08-11
pure 写道 sohuzhenghao 写道 mypyg 写道 在Android上常用的定时器有两种,一种是Java.util.Timer,一种就是系统的AlarmService了。
实验1:使用Java.util.Timer。 在onStart()创创建Timer,每5秒更新一次计数器,并启动。 mTimer = new Timer(); mTimer.schedule(new TimerTask() { @Override public void run() { ++mCount; mHandler.sendEmptyMessage(0); } }, 5*1000, 5*1000); 当连接USB线进行调试时,会发现一切工作正常,每5秒更新一次界面,即使是按下电源键,仍然会5秒触发一次。 当拔掉USB线,按下电源键关闭屏幕后,过一段时间再打开,发现定时器明显没有继续计数,停留在了关闭电源键时的数字。 实验2:使用AlarmService: 2.1通过AlarmService每个5秒发送一个广播,setRepeating时的类型为AlarmManager.ELAPSED_REALTIME。 AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE); am.setRepeating(AlarmManager.ELAPSED_REALTIME, firstTime, 5*1000, sender); 拔掉USB线,按下电源键,过一段时间再次打开屏幕,发现定时器没有继续计数。 2.2setRepeating是的类型设置为AlarmManager.ELAPSED_REALTIME_WAKEUP AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE); am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime, 5*1000, sender); 拔掉USB线,按下电源键,过一点时间再次打开屏幕,发现定时器一直在计数。 如此看来,使用WAKEUP才能保证自己想要的定时器一直工作,但是肯定会引起耗电量的增加。 我们都是Java人 我之前是从北大青鸟培训出来的人, 在家乡做了1年Java开发, 没有学历, 只给2K, 加班无数不给加班费, 周末单休, 不签劳工合同, 没有保险。 无法忍受,之后来到上海做IT互联网猎头, 现在弄了一些Java技术交流群,号码是71532758 喜欢聊天 来加一下, 大家讨论一下技术,Java行情等,如果有喜欢聊天的朋友 共享一下Q群也好,只要500人的群。 我这里给大家推荐工作, 职位有 Java开发工程师 Java架构师 测试工程师 测试架构师 测试经理 ETL开发工程师 ETL架构师 运维工程师 mysql DBA 等等 有需要的加Q 280155570 真受不了。这个人大家对他有什么意见? 冻结帐号 |
|
返回顶楼 | |
发表时间:2010-08-18
你这是在打北大青鸟的负面广告啊
|
|
返回顶楼 | |
发表时间:2010-08-24
"我之前是从北大青鸟培训出来的人,"
他仅是为了说明他是废品而已。 |
|
返回顶楼 | |