`
yansaibo
  • 浏览: 64067 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

handle 刷新ui

阅读更多
利用刷新handle 刷新ui
自己写的 每秒刷新 一下 ui,标记一下
// 刷新线程 ,每秒刷新一次
	public void RefreshTime() {

		// test
		// mb=(Button)findViewById(R.id.Button01);
		mTimer = new Timer();
		// 刷新 更改UI显示
		mHandler = new Handler() {
			@Override
			public void handleMessage(Message msg) {

				switch (msg.what) {
				case 1:
					// mb.setText(String.valueOf(second));
					subButton.setText(String.valueOf(second));
					if (second <= 0) {
						mTimer.cancel();
						AlarmInfo();
					}
					break;
				}
			}
		};

		mTimerTask = new TimerTask() {
			@Override
			// 调用MessageHandle 来控制UI(TimePicker)的显示。
			public void run() {
				mHandler.sendEmptyMessage(1);
				second = notificationInfo.GetCounter();
				second--;
				notificationInfo.SetCounter(second);
			}
		};
		// 设置Timer 的刷新初始时间属新间隔1000ms(1s)。
		mTimer.schedule(mTimerTask, second, 1000);
	}


另一种 使用线程睡眠刷新 ui
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        myTextView=(TextView)findViewById(R.id.myTextView01);
        myAnalogClock=(AnalogClock)findViewById(R.id.myAnalogClock01);
        
        //通过Handler来接受进程所传递的信息并更新TextView
        myHandler=new Handler(){
			@Override
			public void handleMessage(Message msg) {
				//这里做接收到消息后要处理的事情
				switch (msg.what) {
				case Notifier:
					myTextView.setText(myHour+" : "+myMinutes);
					break;
				}
				super.handleMessage(msg);
			}     	
        };
        
        new LooperThread().start();
    }
    class LooperThread extends Thread{

		@Override
		public void run() {
			super.run();
			try{
				do{
					long time=System.currentTimeMillis();
					myCalendar=Calendar.getInstance();
					myCalendar.setTimeInMillis(time);
					myHour=myCalendar.get(Calendar.HOUR);
					myMinutes=myCalendar.get(Calendar.MINUTE);

					Thread.sleep(1000);
					
					//发送消息给Handler对象
					Message m=new Message();
					m.what=Notifier;
					myHandler.sendMessage(m);
				}while(ActivityMain.LooperThread.interrupted()==false);
			}catch (Exception e) {
				e.printStackTrace();
			}
		}
    	
    }
分享到:
评论

相关推荐

    Element-ui树形控件el-tree自定义增删改和局部刷新及懒加载操作

    需求: vue-cli项目树形控件:一级节点为本地节点,默认展开一级节点,增删改后局部刷新数据。 增加节点,点击确定后局部刷新,渲染新数据。 源码 element组件样式 &lt;... @node-click="handle

    TimerCount:计时器,Thread + Handle更新UI

    这通常用于周期性执行任务,例如计时器倒计时或定期刷新UI。`Timer` 可以创建一个定时任务,该任务在指定的时间间隔后触发,执行相应的任务。 2. **线程(Thread)**: 在多线程环境中,线程是程序执行的基本单元。...

    子模态对话框关闭后刷新父模态对话框

    模态对话框(Modal Dialog)是一种常见的UI元素,它强制用户在完成特定任务或作出决定之前与之交互,不能操作背景页面。本话题关注的是如何在关闭子模态对话框后刷新其父模态对话框,这是一个典型的前端开发问题,...

    listView下拉刷新

    三、设置handle监听和结束刷新 在使用RefreshLinearLayout和RefreshListView时,开发者需要设置一个监听器来处理下拉刷新事件。通常,这可以通过设置一个接口或者使用回调方法实现。一旦监听到刷新事件,后台数据...

    dashboard handle kpi接口

    总结来说,"dashboard handle KPI接口"这个任务涵盖了前端开发中数据获取、处理、展示等多个方面,要求开发者具备良好的前后端通信理解、数据处理能力和UI交互设计技能。在实践中,还需要不断优化和调整,以提供最佳...

    jquery ui sortable拖拽后保存位置

    在jquery ui sortable中,拖拽后的元素位置默认是不保存的,一旦页面刷新,元素就会回到排序之前的位置。为了保存拖拽后的元素位置,可以使用stop事件。stop事件在元素停止拖拽后触发。在stop事件中,可以使用....

    android开发教程之handler异步更新ui

    `postInvalidate()`会将刷新请求放入主线程的消息队列,等待主线程处理。这样,即使在子线程中,也能安全地触发UI的更新。 总结起来,`Handler`和`postInvalidate()`在Android开发中用于异步更新UI,确保UI操作始终...

    Fragment Handle MenuItem

    `Fragment Handle MenuItem`涉及到如何在`Fragment`中处理这些菜单项的点击事件。下面将详细介绍这个主题。 1. **Fragment的基本概念**: `Fragment`是Android SDK引入的一种设计模式,它允许开发者将应用程序的UI...

    Ajax无刷新文件上传(带进度条,无组件)

    handleSuccess(xhr.responseText); } else { // 处理错误 handleError(); } }; xhr.send(formData); ``` 在onprogress事件中,我们可以计算出文件上传的进度,并更新进度条。onload事件则用于处理文件上传成功...

    进度对话框,使用Handler类来不断更新进度对话框

    总结,本示例主要介绍了如何使用ProgressDialog结合Handler更新进度值,涉及了水平和圆形两种对话框样式,以及如何在后台线程中执行耗时操作并实时更新UI。这些知识对于Android开发者来说是非常基础且实用的技能。在...

    Handler和AsyncTack

    这致使我们不能在Android的UI线程中执行一些费时的操作,如下载、刷新等。Android中只允许UI线程对Activity中的UI组件进行修改。不过我们有两种方式来优化这种麻烦的情况——Handler和AsyncTack。

    gdi_sample

    #### 层的绘制与刷新 ```c void RedrawCagtegoryScreen(void) { // 锁定帧缓冲区,防止在绘制时被其他进程访问 gdi_layer_lock_frame_buffer(); // 重新绘制全屏内容 RedrawFullScreen(); // 解锁帧缓冲区 ...

    抽屉SlidingDrawer

    3. **SwipeRefreshLayout**:虽然主要用于上拉刷新,但可以通过自定义实现类似抽屉效果的滑动手势。 文件名为`WidgetTest`的压缩包可能包含了一个Android应用的示例代码,用于演示如何实现SlidingDrawer或测试不同...

    C#往ListView控件添加数据不闪烁.zip

    base.OnPaintBackground(new PaintEventArgs(Graphics.FromHwnd(this.Handle), this.ClientRectangle)); } } ``` 在这个自定义的NoFlickerListView类中,我们启用了双缓冲,并重写了`OnPaintBackground`方法来忽略...

    Android handleThread的使用

    本文将详细讲解`handleThread`的使用及其在下载图片并刷新UI中的应用。 首先,`Thread`是Java中的基础线程类,用于创建新的执行线程。在Android中,我们通常避免在主线程(UI线程)上执行耗时任务,因为这会导致...

    Android下拉通知效果

    在Android系统中,下拉通知效果是用户界面(UI)设计的一个重要组成部分,它使得用户能够轻松访问和管理系统的各种通知。"Android下拉通知效果"这个主题涉及到Android开发中的通知系统、滑动抽屉(Sliding Drawer)...

    详解elementUI中input框无法输入的问题

    2. **强制更新视图**:在某些情况下,由于组件更新机制的问题,Vue可能无法感知到数据的变化,此时可以尝试使用`this.$forceUpdate()`强制刷新组件,使视图与数据同步。不过,这种方法并不推荐,因为它可能会影响到...

    Handler机制示例代码

    在Android开发中,Handler机制是实现线程间通信的...Handler机制在Android开发中广泛应用于各种场景,如网络请求、定时任务、UI刷新等。正确理解和使用Handler能帮助开发者更好地管理线程,提高应用性能和用户体验。

    MatlabGUI编程总结 (2).pdf

    当数据改变时,可以使用`drawnow`函数刷新图形,确保界面及时更新。 8. GUI响应性能 为了提高GUI的响应速度,可以使用异步回调或`parfor`等并行计算技术。 9. 错误处理 在编写回调函数时,应考虑错误处理,使用...

    vue-router配合ElementUI实现导航的实例

    在这个问题中,我们将深入探讨如何将Vue Router与Element UI的导航菜单结合使用,以及解决在页面刷新后导航选中状态不匹配的问题。 首先,Vue Router的核心概念包括路由配置(routes)、导航守卫(guards)和动态...

Global site tag (gtag.js) - Google Analytics