
这种我刚做过类似的,后台服务自动定时上传位置,锁屏状态连续工作10小时,每分钟上传一次。不用保持唤醒状态和点亮屏幕,非常省电。 主要思路就是用闹钟管理器来保持一个repeat的PendingIntent。 这种办法,不惧怕系统休眠,不需要保持唤醒。
据我所知,好像一个Timer一旦被cancel之后就废了,只有重新构造一个才行。
因为每次onDraw调用,你都会启动一个Timer,这样Timer越来越多。
在第一个Timer木有结束时,已经启动了若干个,每个都每隔03秒发出一个message,导致变化加速。
只需要把new Timer这个放在初始化函数里调用就行。
onDraw是会反复调用滴。
Timer
Android 的 Timer 类可以用来计划需要循环执行的任务,Timer 的问题是它需要用 WakeLock 让 CPU 保持唤醒状态,这样会大量消耗手机电量,大大减短手机待机时间。这种方式不能满足我们的需求。
AlarmManager
AlarmManager 是 Android 系统封装的用于管理 RTC 的模块,RTC (Real Time Clock) 是一个独立的硬件时钟,可以在 CPU 休眠时正常运行,在预设的时间到达时,通过中断唤醒 CPU。
这意味着,如果我们用 AlarmManager 来定时执行任务,CPU 可以正常的休眠,只有在需要运行任务时醒来一段很短的时间。
Android-使用handler代替Timer
(Handler加Runnable线程,更简洁)
java代码:
private Handler handler = new Handler( );
private Runnable runnable = new Runnable( ) {
public void run ( ) {
update( );
handlerpostDelayed(this,1000);
//postDelayed(this,1000)方法安排一个Runnable对象到主线程队列中
}
};
handlerpostDelayed(runnable,1000); // 开始Timer
handlerremoveCallbacks(runnable); //停止Timer
以上就是关于android 用timer定时去访问一个方法,怎么获得最新数据全部的内容,包括:android 用timer定时去访问一个方法,怎么获得最新数据、在Android里面用Timer.schedule(TimerTask task, long delay, long period)、android定时器alarmmanager和timer的区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)