Android创建定时和周期任务

问题:应用需要按时执行某个操作,例如定时更新UI。

解决方案:使用Handler提供的定时操作功能。通过Handler,可以在指定的时间或是指定的延时后执行操作。

 

下面看一个在TextView中显示当前时间的Avtivity。

import java.util.Calendar;

import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.widget.TextView;

public class TimingActivity extends Activity {

    private Handler mHandler = new Handler();
    private TextView mClock;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mClock = new TextView(this);
        setContentView(mClock);
    }
    
    private Runnable timerTask = new Runnable() {
        
        @Override
        public void run() {
            Calendar now = Calendar.getInstance();
            mClock.setText(String.format("%02d:%02d:%02d", now.get(Calendar.HOUR) 
                                                         ,now.get(Calendar.MINUTE) 
                                                         ,now.get(Calendar.SECOND)));
            //设置1秒之后再次更新
            mHandler.postDelayed(timerTask, 1000);
        }
    };
    
    //OnCreate执行后会执行onResume方法
    protected void onResume() {
        super.onResume();
        mHandler.post(timerTask);
    };
    
    @Override
    protected void onPause() {
        super.onPause();
        mHandler.removeCallbacks(timerTask);
    }
    
}

你可能感兴趣的:(android)