android alarm timer 哪个好

 我来答
huanglenzhi
2015-01-28 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117529 获赞数:517218
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部
  推荐使用handler。在Android中常见的几种刷新方式有 Timer,Alarm和handler。在widgetapp更新中,alarm用的比较多,有人讲用alarm比较省电。
  但笔者使用后发现用alarm有时候反而会使系统反应变慢了。更好的方法推荐使用handler。

  第一种:Timer
  Timer这种方式最为常见,起个定时刷新的任务,不用的时候cancel掉,置为空即可。
  示例代码:
  Timer timer = new Timer( );

  TimerTask task = new TimerTask( ) {
  public void run ( ) {
  Message message = new Message( );
  message.what = 1;
  handler.sendMessage(message);
  }
  };

  final Handler handler = new Handler( ) {
  public void handleMessage(Message msg) {
  switch (msg.what) {
  case 1:
  log.e("Timer","Timer");
  update( );
  break;
  }

  第二种:Alarm
  示例代码:
  开始计时
  Intent intent = new Intent(widgetUpdate);
  refreshIntent = PendingIntent.getBroadcast(pContext, 0, intent, 0);
  alarm = (AlarmManager)pContext.getSystemService(Context.ALARM_SERVICE);
  alarm.setRepeating(AlarmManager.RTC, 0, 1000, refreshIntent);//每秒刷新1次
  停止计时
  if (alarm!=null) {
  alarm.cancel(refreshIntent);
  refreshIntent.cancel();
  refreshIntent = null;
  alarm = null;
  }

  第三种:handler
  private Handler handler = new Handler();
  private Runnable runnable = new Runnable() {
  public void run () {
  update();
  handler.postDelayed(this,1000);
  }
  };

  开始计时
  handler.removeCallbacks(runnable);
  handler.postDelayed(runnable,1000);
  停止计时
  handler.removeCallbacks(runnable);
  第三种代码看起来也非常的简洁,推荐使用。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式