android 用timer定时去访问一个方法,怎么获得最新数据

android 用timer定时去访问一个方法,怎么获得最新数据,第1张

这种我刚做过类似的,后台服务自动定时上传位置,锁屏状态连续工作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的区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9641913.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存