利用刷新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();
}
}
}
分享到:
相关推荐
需求: vue-cli项目树形控件:一级节点为本地节点,默认展开一级节点,增删改后局部刷新数据。 增加节点,点击确定后局部刷新,渲染新数据。 源码 element组件样式 <... @node-click="handle
这通常用于周期性执行任务,例如计时器倒计时或定期刷新UI。`Timer` 可以创建一个定时任务,该任务在指定的时间间隔后触发,执行相应的任务。 2. **线程(Thread)**: 在多线程环境中,线程是程序执行的基本单元。...
模态对话框(Modal Dialog)是一种常见的UI元素,它强制用户在完成特定任务或作出决定之前与之交互,不能操作背景页面。本话题关注的是如何在关闭子模态对话框后刷新其父模态对话框,这是一个典型的前端开发问题,...
三、设置handle监听和结束刷新 在使用RefreshLinearLayout和RefreshListView时,开发者需要设置一个监听器来处理下拉刷新事件。通常,这可以通过设置一个接口或者使用回调方法实现。一旦监听到刷新事件,后台数据...
总结来说,"dashboard handle KPI接口"这个任务涵盖了前端开发中数据获取、处理、展示等多个方面,要求开发者具备良好的前后端通信理解、数据处理能力和UI交互设计技能。在实践中,还需要不断优化和调整,以提供最佳...
在jquery ui sortable中,拖拽后的元素位置默认是不保存的,一旦页面刷新,元素就会回到排序之前的位置。为了保存拖拽后的元素位置,可以使用stop事件。stop事件在元素停止拖拽后触发。在stop事件中,可以使用....
`postInvalidate()`会将刷新请求放入主线程的消息队列,等待主线程处理。这样,即使在子线程中,也能安全地触发UI的更新。 总结起来,`Handler`和`postInvalidate()`在Android开发中用于异步更新UI,确保UI操作始终...
`Fragment Handle MenuItem`涉及到如何在`Fragment`中处理这些菜单项的点击事件。下面将详细介绍这个主题。 1. **Fragment的基本概念**: `Fragment`是Android SDK引入的一种设计模式,它允许开发者将应用程序的UI...
handleSuccess(xhr.responseText); } else { // 处理错误 handleError(); } }; xhr.send(formData); ``` 在onprogress事件中,我们可以计算出文件上传的进度,并更新进度条。onload事件则用于处理文件上传成功...
总结,本示例主要介绍了如何使用ProgressDialog结合Handler更新进度值,涉及了水平和圆形两种对话框样式,以及如何在后台线程中执行耗时操作并实时更新UI。这些知识对于Android开发者来说是非常基础且实用的技能。在...
这致使我们不能在Android的UI线程中执行一些费时的操作,如下载、刷新等。Android中只允许UI线程对Activity中的UI组件进行修改。不过我们有两种方式来优化这种麻烦的情况——Handler和AsyncTack。
#### 层的绘制与刷新 ```c void RedrawCagtegoryScreen(void) { // 锁定帧缓冲区,防止在绘制时被其他进程访问 gdi_layer_lock_frame_buffer(); // 重新绘制全屏内容 RedrawFullScreen(); // 解锁帧缓冲区 ...
3. **SwipeRefreshLayout**:虽然主要用于上拉刷新,但可以通过自定义实现类似抽屉效果的滑动手势。 文件名为`WidgetTest`的压缩包可能包含了一个Android应用的示例代码,用于演示如何实现SlidingDrawer或测试不同...
base.OnPaintBackground(new PaintEventArgs(Graphics.FromHwnd(this.Handle), this.ClientRectangle)); } } ``` 在这个自定义的NoFlickerListView类中,我们启用了双缓冲,并重写了`OnPaintBackground`方法来忽略...
本文将详细讲解`handleThread`的使用及其在下载图片并刷新UI中的应用。 首先,`Thread`是Java中的基础线程类,用于创建新的执行线程。在Android中,我们通常避免在主线程(UI线程)上执行耗时任务,因为这会导致...
在Android系统中,下拉通知效果是用户界面(UI)设计的一个重要组成部分,它使得用户能够轻松访问和管理系统的各种通知。"Android下拉通知效果"这个主题涉及到Android开发中的通知系统、滑动抽屉(Sliding Drawer)...
2. **强制更新视图**:在某些情况下,由于组件更新机制的问题,Vue可能无法感知到数据的变化,此时可以尝试使用`this.$forceUpdate()`强制刷新组件,使视图与数据同步。不过,这种方法并不推荐,因为它可能会影响到...
在Android开发中,Handler机制是实现线程间通信的...Handler机制在Android开发中广泛应用于各种场景,如网络请求、定时任务、UI刷新等。正确理解和使用Handler能帮助开发者更好地管理线程,提高应用性能和用户体验。
当数据改变时,可以使用`drawnow`函数刷新图形,确保界面及时更新。 8. GUI响应性能 为了提高GUI的响应速度,可以使用异步回调或`parfor`等并行计算技术。 9. 错误处理 在编写回调函数时,应考虑错误处理,使用...
在这个问题中,我们将深入探讨如何将Vue Router与Element UI的导航菜单结合使用,以及解决在页面刷新后导航选中状态不匹配的问题。 首先,Vue Router的核心概念包括路由配置(routes)、导航守卫(guards)和动态...