zoukankan      html  css  js  c++  java
  • Android中几种常见的定时刷新方式

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

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

    View Code
    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
    示例代码:

    View Code
    开始计时
    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

    View Code
    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);

    第三种代码看起来也非常的简洁,推荐使用。

  • 相关阅读:
    pandas DataFrame
    pandas Series
    numpy nan和inf
    Filder配置及使用教程
    Vmware Ubuntu18.04更换清华源
    numpy 其它常用方法
    numpy 数组的拼接
    numpy 数值的修改
    numpy 索引和切片
    class 绑定的数据对象不必内联定义在模板里
  • 原文地址:https://www.cnblogs.com/androidsj/p/2953662.html
Copyright © 2011-2022 走看看