Android中一个动态更新时间并显示的小例子
2014-06-09 16:39
239 查看
这是一个利用线程和Handler配合更新时间的小例子:
1.主Activity:
1.主Activity:
public class TestTimeChangedActivity extends Activity{ private TextView tvTime ; private TimeReceiver receiver ; Handler mHandler ; private static final int FLUSH_TIME_STATE = 100; private boolean timeFlush = true ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.time_layout) ; tvTime = (TextView) this.findViewById(R.id.tv_times) ; register() ; setHandler(); new TimeThread().start() ; } //控制时间更新的线程 private class TimeThread extends Thread{ @Override public void run() { super.run(); while (timeFlush) { mHandler.sendEmptyMessage(FLUSH_TIME_STATE) ; } } } //实际更新时间的Handler private void setHandler() { mHandler = new Handler(){ public void handleMessage(android.os.Message msg) { switch (msg.what) { case FLUSH_TIME_STATE: updateTime() ; break; default: break; } }; } ; } //注册时间变化的广播 private void register() { IntentFilter filter = new IntentFilter() ; filter.addAction(Intent.ACTION_TIME_CHANGED) ; filter.addAction(Intent.ACTION_TIMEZONE_CHANGED) ; receiver = new TimeReceiver() ; this.registerReceiver(receiver, filter) ; } //时间变化之后更新时间 private class TimeReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { updateTime() ; } } //更新时间的函数 private void updateTime() { SimpleDateFormat timeFormat = null; boolean is24 = DateFormat.is24HourFormat(this); if (!is24) { timeFormat = new SimpleDateFormat("hh:mm a"); } else { timeFormat = new SimpleDateFormat("HH:mm"); } Date now = Calendar.getInstance().getTime(); tvTime.setText(timeFormat.format(now)); } @Override protected void onDestroy() { super.onDestroy(); if (receiver != null) { this.unregisterReceiver(receiver) ; } } }2.xml文件:time_layout
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/tv_times" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
相关文章推荐
- android cavas 绘制坐标系并显示矩形波方波-横轴为当前时间动态更新(不用achartengine)
- 智能课程表Android版-日期和时间的动态显示(二)
- 一个显示系统时间的例子
- 一个android显示远程txt的代码例子
- androidの当前时间动态显示
- Android中当前时间的动态显示
- android 如何动态更新当前显示的Activity 的local
- 网页中实现一个计算当年还剩多少时间的倒数计时程序,要求网页上实时动态显示“××年还剩××天××时××分××秒”
- Android动态显示系统时间,附获得当前年月日星期时分秒方法,一步到位
- android 绘制折线图(AChartEngine)Linechart 动态更新横轴为获取的当前时间
- android获取当前时间(12小时制and24小时制)并动态显示
- 智能课程表Android版-日期和时间的动态显示(一)
- 智能课程表Android版-日期和时间的动态显示(一)
- Android中两种不同的方法实现实时更新时间,是显示时间和系统时间同步
- Android中当前时间的动态显示
- android一个上传图片的例子,包括如何终止上传过程,如果在上传的时候更新进度条(一)
- 一个使用 ANSI.SYS Escape Sequences 进行时间显示的例子
- 一个简洁的(javascript时钟)动态显示日期时间
- 智能课程表Android版-日期和时间的动态显示(二)
- Android Timer启动任务更新时间显示