package com.bawei.layout;
import java.util.Calendar;
import android.app.Activity;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.widget.TextView;
public class TimeActivity extends Activity{
private static final int GUINOTIFIER =1;
//然后定义一些例子 里面需要的属性
public Calendar mCalendar;
// public int mMinutes;
// public int mHour; //小时
private int myear;//年
private int mmonth;//月
private int mday;//天
private int mminute;//分钟
private int mhour;//小时
private int msecond;//秒
private int mweek;//星期
private Handler mHandler;
private Thread mClockThread;
private TextView mtextview;
protected void onCreate(android.os.Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.time);
mtextview = (TextView) findViewById(R.id.time_textview);
//接着我们通过Handler来接收Thread所传递的信息
result();
mHandler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case TimeActivity.GUINOTIFIER://TestHandler是Activity的类名
//得到Handle的通知了 这个时候你可以做相应的操作,本例是使用TextView 来显示时间
mtextview .setText(myear + "年" + mmonth+"月"+ mday +"日"+mhour +":"+mminute+":"+msecond+"星期"+mweek);
break;
}
super.handleMessage(msg);
}
};
}
//接下来我们自定义一个Thread
class LooperThread extends Thread {
public void run() {
super.run();
try {
do {
//每间隔一秒取一次系统 时间
long time = System.currentTimeMillis();
final Calendar mCalendar = Calendar.getInstance();
mCalendar.setTimeInMillis(time);
// 取得系统日期:
myear = mCalendar.get(Calendar.YEAR);
mmonth = mCalendar.get(Calendar.MONTH);
mday = mCalendar.get(Calendar.DAY_OF_MONTH);
// 取得系统时间:
mhour = mCalendar.get(Calendar.HOUR_OF_DAY);
mminute = mCalendar.get(Calendar.MINUTE);
msecond= mCalendar.get(Calendar.SECOND);
mweek = mCalendar.get(Calendar.DAY_OF_WEEK);
Thread.sleep(1000);
//取得系统时间后发送消息给Handler
Message m = new Message();
m.what = GUINOTIFIER;
mHandler.sendMessage(m);
} while (!LooperThread.interrupted());//当系统发出终端命令时停止循环
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
//最后我们启动线程
public void result(){
mClockThread = new LooperThread();
mClockThread.start();
}
}
分享到:
相关推荐
android demo,使用Handler的postDelay,Runnable run实现延时3秒的splash。
简单实现更新UI的操作,仅供学习参考 这里用到handler类,runnable类,按钮的点击事件
Android源代码:HandlerDemo。。。。。。。。。。。。
Android Weak Handler Memory safer implementation of android.os.Handler Problem Original implementation of Handler always keeps hard reference to handler in queue of execution. Any object in Message or...
【Android开发入门】Android线程之Handler
1.handler是什么? 2.handler怎么用? 3.为什么要用handler?
Android Handler类详解 Android Handler类详解 Android Handler类详解 Android Handler类详解
android 中Handler 的几种写法,很简单的demo,大神简单修改下,用的是Handler.Callback,的方法
Android Handler传值的,简单的介绍了Handler的用法
android 线程之间通过Handler发送消息实例
android 实例 Activity 之间通过 Handler 通信
主要介绍了使用C++11实现Android系统的Handler机制,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
Android线程操作 handler demo
Android应用源码之HandlerMessage1_HandlerMessage
Android中多线程的Handler的工作原理,其中涉及到MessageQueue和Looper。详情可以参见博客:http://www.cnblogs.com/plokmju/p/android_Looper.html
本资源是自己文章的demo的代码,以及android 系统部分的源代码
android 多线程 looper handler的讲解,轻松学明白androd的消息机制,附有很多实例。
Android Handler Looper
本文实例讲述了Android编程实现使用handler在子线程中更新UI。分享给大家供大家参考,具体如下: MainActivity代码: package com.example.ui; import android.os.Handler; import android.os.Message; import ...
Android的Handler使用方法总结,不错的文档,跟大家分享分享