没什么好说的,直接上代码吧
public class MainActivity extends Activity {
TextView textView1;
private final int UPDATE_TEXT = 1;
private String year;
private String month;
private String day;
private String hour;
private String minute;
private String second;
Bundle b = new Bundle();
Calendar cal;
Handler mhandler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case UPDATE_TEXT:
Bundle newdata=msg.getData();
String s = newdata.getString("CurrentTime");
textView1.setText(s);
break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
UIInit();
new UseMessageHandler().start();
new Thread(new Runnable() {
@Override
public void run() {
while (!Thread.currentThread().isInterrupted()) {
Message message = Message.obtain();
Message m =new Message();
message.what = UPDATE_TEXT;
cal = Calendar.getInstance();
cal.setTimeZone(TimeZone.getTimeZone("GMT+8:00"));
year = String.valueOf(cal.get(Calendar.YEAR));
month = String.valueOf(cal.get(Calendar.MONTH)+1);
day = String.valueOf(cal.get(Calendar.DATE));
if (cal.get(Calendar.AM_PM) == 0)
hour = String.valueOf(cal.get(Calendar.HOUR));
else
hour = String.valueOf(cal.get(Calendar.HOUR)+12);
minute = String.valueOf(cal.get(Calendar.MINUTE));
second = String.valueOf(cal.get(Calendar.SECOND));
String currenttime = year + "年" + month + "月" + day + "日" + hour + "时" + minute + "分" + second +"秒";
b.putString("CurrentTime", currenttime);
message.setData(b);
mhandler.sendMessage(message);
}
}
}).start();
}
private void UIInit() {
textView1 = (TextView) findViewById(R.id.textView1);
};
}
布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="club.hellomiao.androidtest.MainActivity" >
<TextView
android:id= "@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
</RelativeLayout>
- 这里有一个需要注意的点,在创建Message对象的时候,建议使用Message.obtain()方法。如果用new Meaasge(),也是可以通过编译且不会报错的,但是把鼠标移到那句话上时,Eclipse提醒Constructor (but the preferred way to get a Message is to call Message.obtain()).它的优势在于:Return a new Message instance from the global pool. Allows us to avoid allocating new objects in many cases.
- 关于显示时间的代码也可以做适当修改作为一个工具类放在以后的工程里