一、AnalogClock时钟显示时间
protected static final int GUINOTIFIER = 0x1234;
private TextView mTextView;
public AnalogClock mAnalogClock;
public Calendar mCalendar;
public int mMinutes;
public int mHour;
public Handler mHandler;
private Thread mClockThread;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.clock);
mTextView = (TextView) findViewById(R.id.myTextView);
mAnalogClock = (AnalogClock) findViewById(R.id.myAnalogClock);
mHandler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case Clock.GUINOTIFIER:
mTextView.setText(mHour + " : " + mMinutes);
break;
}
super.handleMessage(msg);
}
};
mClockThread = new LooperThread();
mClockThread.start();
}
class LooperThread extends Thread {
public void run() {
super.run();
try {
do {
long time = System.currentTimeMillis();
final Calendar mCalendar = Calendar.getInstance();
mCalendar.setTimeInMillis(time);
mHour = mCalendar.get(Calendar.HOUR);
mMinutes = mCalendar.get(Calendar.MINUTE);
Thread.sleep(1000);
Message m = new Message();
m.what = Clock.GUINOTIFIER;
Clock.this.mHandler.sendMessage(m);
} while (Clock.LooperThread.interrupted() == false); /* 当系统发出中断讯息时停止本循环 */
} catch (Exception e) {
e.printStackTrace();
}
}
}