1、在Activity主UI中开新线程:new Thread(new Runnable()
{
@Override
public void run()
{
while(true)
{
//获取需要监控的值
//若值有变化,则执行相应处理程序(如刷新主UI线程)
}
try{
Thread.sleep(2000); //线程运行的频率,单位是毫秒(0.001秒)
}catch (InterruptedException e){
e.printStackTrace();
}
}
}
}).start();
new Thread(new Runnable()
{
@Override
public void run()
{
while(true)
{
//获取需要监控的值
//若值有变化,则执行相应处理程序(如刷新主UI线程)
}
try{
Thread.sleep(2000); //线程运行的频率,单位是毫秒(0.001秒)
}catch (InterruptedException e){
e.printStackTrace();
}
}
}
}).start();
2、监控到值的变化之后,如果直接在线程中更改主UI线程,会出错。
提示是:“Android中不能在子线程中刷新UI线程”
解决方法:用 Activity.runOnUiThread,它是Handle的特殊情况,便于处理这类问题
代码如下:
Activity.this.runOnUiThread(new Runnable()
{
@Override
public void run()
{
// 更新UI的操作代码
}
});
注:
1、其中Activity是指主UI所在的Activity的名称,也就是指明要操作哪一个UI。
2、将这段代码直接加到Thread的处理程序中就行了。
参考资料:http://blog.163.com/menxu_work/blog/static/20777441920125311250187/
Over