问题:应用需要按时执行某个操作,例如定时更新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); } }