android中如何实现UI的实时更新
发布网友
发布时间:2022-04-21 17:41
我来回答
共2个回答
热心网友
时间:2023-06-26 01:27
1、在主线程中启动一个子线程
首先,我们需要在主线程中启动一个子线程,这个比较简单,直接在MainActivity的onCreate()方法中调用如下方法即可:
new Thread(mRunnable).start();
2、在子线程中发送Message给Handler
在创建子线程时,我们使用了Runnable接口对象mRunnable。这里,只需要实现Runnable接口,并重写该接口的run()方法,在run()方法中实现每1秒发送一条Message给Handler即可。具体实现方法如下:
/*
* Function : 实现run()方法,每1秒发送一条Message给Handler
*/
private Runnable mRunnable = new Runnable() {
public void run() {
while(true) {
try {
Thread.sleep(1000);
mHandler.sendMessage(mHandler.obtainMessage());
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
3、Handler接收Message通知
最后,我们创建一个Handler对象,用来接收Message通知。在收到Message通知后,完成刷新UI的操作即可。具体实现方法如下:
/*
* Function : 实现handleMessage()方法,用于接收Message,刷新UI
*/
private Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
super.handleMessage(msg);
refreshUI();
}
};
4、刷新UI
由以上的代码可以看出,刷新UI的操作,我们是放在refreshUI()方法中来完成的。refreshUI()方法的实现也很简单,调用HttpUtils工具类中的getInputStream()方法,获得图1所示Web工程的页面内容输入流,再将该输入流转化为字符串,放入TextView控件中进行显示即可。具体实现方法如下:
/*
* Function : 刷新UI
*/
private void refreshUI() {
try {
InputStream inputStream = HttpUtils.getInputStream();
String resultData = HttpUtils.getResultData(inputStream);
mTextView.setText(resultData);
} catch (IOException e) {
e.printStackTrace();
}
}
热心网友
时间:2023-06-26 01:28
不知道,你可以百度看看