当前位置:首页 » 安卓系统 » android实时刷新

android实时刷新

发布时间: 2022-12-10 06:19:51

Ⅰ android中如何实现UI的实时更新

1、在主线程中启动一个子线程

首先,我们需要在主线程中启动一个子线程,这个比较简单,直接在MainActivity的onCreate()方法中调用如下方法即可:

java">newThread(mRunnable).start();

2、在子线程中发送Message给Handler

在创建子线程时,我们使用了Runnable接口对象mRunnable。这里,只需要实现Runnable接口,并重写该接口的run()方法,在run()方法中实现每1秒发送一条Message给Handler即可。具体实现方法如下:

/*
*Function:实现run()方法,每1秒发送一条Message给Handler
*/
privateRunnablemRunnable=newRunnable(){
publicvoidrun(){
while(true){
try{
Thread.sleep(1000);
mHandler.sendMessage(mHandler.obtainMessage());
}catch(InterruptedExceptione){
e.printStackTrace();
}
}
}
};

3、Handler接收Message通知

最后,我们创建一个Handler对象,用来接收Message通知。在收到Message通知后,完成刷新UI的操作即可。具体实现方法如下:

/*
*Function:实现handleMessage()方法,用于接收Message,刷新UI
*/
privateHandlermHandler=newHandler(){
publicvoidhandleMessage(Messagemsg){
super.handleMessage(msg);
refreshUI();
}
};

4、刷新UI

由以上的代码可以看出,刷新UI的操作,我们是放在refreshUI()方法中来完成的。refreshUI()方法的实现也很简单,调用HttpUtils工具类中的getInputStream()方法,获得图1所示Web工程的页面内容输入流,再将该输入流转化为字符串,放入TextView控件中进行显示即可。具体实现方法如下:

/*
*Function:刷新UI
*/
privatevoidrefreshUI(){
try{
InputStreaminputStream=HttpUtils.getInputStream();
StringresultData=HttpUtils.getResultData(inputStream);
mTextView.setText(resultData);
}catch(IOExceptione){
e.printStackTrace();
}
}

Ⅱ android fragment 刷新功能

本文 介绍两点 已是fragment的切换 一是fragment刷新  

先说第一点 fragment的切换  

目前fragment在开发中应用越来越广泛 当然也非常方便 

而我们切换fragment 也有两中方式 

第一种是replace的方法进行的 这种方式要看运用场景 用起来很方便 但是个人感觉效果并不好 因为这种方式进行切换得话 首先他会remove掉当前的fragment,然后在new 一个新的fragment进行add,也就是说当前fragment中的所有东西都是重新加载的 所以个人不建议使用这种方式进行fragment的高频率切换 这种只适合fragment切换和使用次数比较少的情况 

第二种是show+hide 进行fragment切换 这种方式相比第一种可能会复杂一点 首先要建立几个fragment 开始事务 然后判断添加 举个例子 

1 创建fragment…… 

2 添加事务 android.app.FragmentTransaction ft = getFragmentManager().beginTransaction(); 

–#在添加之前先进行判断隐藏#– 

// 这是hide fragment 的方法 

onHideFragment(ft); 

3 判断添加 

if (homeFragment==null){ 

homeFragment = new HomeFragment(); 

ft.add(R.id.content,homeFragment); 

}else { 

ft.show(homeFragment); 



4 判断隐藏 

if (homeFragment!=null){ 

ft.hide(homeFragment); 



5 添加一个默认显示fragment 也就是你进入activity需要显示的那个 

好 此时你就完成了使用hide + show 进行fragment切换了

现在我们说第二点 就是fragment的刷新需求  

我们可能会需要fragment的刷新功能 例如说是我首页使用fragment 进行功能切换时 希望返回到之前的fragment可以刷新 或者返回到activity时 fragment也可以刷新 本人使用了 两种方法进行fragment的刷新 我想大部分应该都会使用第一种 返回activity时 fragment刷新 就是重写acvitity的onstart() 方法进行刷新fragment的数据 但是这是有弊端的 第一就是假如你使用了listview或者gridview 时会出现重复加载的情况 所以使用这种方法时 你就要进行清空数据并刷新适配器就可以避免了 

第二种 就是使用hide+show时 在fragment进行切换时 刷新fragment 此时会有这样一个这样的方法 onHiddenChanged(boolean hidden);看方法名 你也可以看出来 就是在hide有变化时使用 hidden参数是boolean 当hidden为true时表示fragment在hide 此时不必更新数据 当hidden为false时 他就不隐藏了 此时更新 

if (hidden){ 

return; 

}else { 

list.clear(); 

getSellList(); 



list是要清空的 避免重复加载 

–#onHiddenChanged(boolean hidden); 这是fragment的方法哦 !!!#– 

本文 到此结束 希望对各位有所帮助 有问题可以评论区提出 大家一起进步

Ⅲ 在android中,怎样刷新当前的activity

刷新activity的方法:
1. 刷新当前activity界面数据(手动刷新):
在activity类下新增一个refresh()方法:
/**
* 刷新, 这种刷新方法,只有一个Activity实例。
*/
public void refresh() {
onCreate(null);
}

2. 刷新另一个activity界面数据(自动刷新):
在涉及到sqlite3数据库操作的activity类下重写onResume()方法:(此处建议复习下activity的生命周期, 并了解下onResume()方法的使用)
/**
* 调用onCreate(), 目的是刷新数据,
* 从另一activity界面返回到该activity界面时, 此方法自动调用
*/
@Override
protected void onResume() {
super.onResume();
onCreate(null);
}
由此, 涉及到sqlite数据库数据的插入/更新/删除的activity的类, 建议像上面一样重写onResume()方法, 这是本人在实践中解决"刷新另一activity界面数据"的可行方法

Ⅳ 如何定时刷新Android界面

Android程序中可以使用的界面刷新方法有两种,分别是利用Handler和利用postInvalidate()来实现在线程中刷新界面。
利用Handler刷新界面
实例化一个Handler对象,并重写handleMessage方法调用invalidate()实现界面刷新;而在线程中通过sendMessage发送界面更新消息。
复制到剪贴板 java代码// 在onCreate()中开启线程 new Thread(new GameThread()).start();、 // 实例化一个handler Handler myHandler = new Handler() { //接收到消息后处理 public void handleMessage(Message msg) { switch (msg.what) { case Activity01.REFRESH: mGameView.invalidate(); //刷新界面 break; } super.handleMessage(msg); } }; class GameThread implements Runnable { public void run() { while (!Thread.currentThread().isInterrupted()) { Message message = new Message(); message.what = Activity01.REFRESH; //发送消息 Activity01.this.myHandler.sendMessage(message); try { Thread.sleep(100); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } } } } 使用postInvalidate()刷新界面
使用postInvalidate则比较简单,不需要handler,直接在线程中调用postInvalidate即可。
复制到剪贴板 Java代码class GameThread implements Runnable { public void run() { while (!Thread.currentThread().isInterrupted()) { try { Thread.sleep(100); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } //使用postInvalidate可以直接在线程中更新界 mGameView.postInvalidate(); } } }

Ⅳ android Fragment 实时更新数据问题。

写个回调的接口,当activity刷新数据的时候,调fragment的接口就可以了
或者简单的用eventbus或者用localbroadcastreceiver

Ⅵ Android开发系列七:怎么定时刷新界面

在做Android客户端软件的时候经常需要刷新某区块内容,比如微博客户端就需要定期检测是否有新发布的微博内容,如果有新微博客户端就显示出来。Android里可以选用两种方式来实现此功能。
方式一、使用Timer(定时器)和TimerTask实现
示例代码:
public class MainActivity extends Activity {
private TextView msg;
final Handler handler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
update();
break;
}
super.handleMessage(msg);
}
void update() {
//刷新msg的内容
}
};
Timer timer = new Timer();
TimerTask task = new TimerTask() {
public void run() {
Message message = new Message();
message.what = 1;
handler.sendMessage(message);
}
};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
msg = (TextView) findViewById(R.id.txtMsg);
msg.setText("你好啊!");
timer.schele(task, 1000 * 40, 1000 * 30); //启动timer
}
@Override
protected void onDestroy() {
if (timer != null) {// 停止timer
timer.cancel();
timer = null;
}
super.onDestroy();
}
}
方式二、使用Runnable和Handler
示例代码
public class MainActivity extends Activity {
private TextView msg;
private Handler handler = new Handler();
private Runnable runnable = new Runnable() {
public void run() {
this.update();
handler.postDelayed(this, 1000 * 120);// 间隔120秒
}
void update() {
//刷新msg的内容
}
};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
msg = (TextView) findViewById(R.id.txtMsg);
msg.setText("你好啊!");
handler.postDelayed(runnable, 1000 * 60);
}
@Override
protected void onDestroy() {
handler.removeCallbacks(runnable); //停止刷新
super.onDestroy();
}
}
第一种方式还适用于消息通知的方式实现更新,第二种方式通常是主动去检查是否需要刷新。对于定时刷新这种使用第二种方式更好。

热点内容
android手机号码获取 发布:2025-03-16 04:14:42 浏览:873
为什么没有dns服务器可以上网 发布:2025-03-16 04:13:04 浏览:647
电脑快速服务器代码怎么查 发布:2025-03-16 03:58:26 浏览:111
电脑虚荣服务器 发布:2025-03-16 03:56:48 浏览:116
android游戏安装 发布:2025-03-16 03:50:08 浏览:330
翻杯子算法 发布:2025-03-16 03:34:31 浏览:603
ftp后台密码怎么设置 发布:2025-03-16 03:33:08 浏览:361
阿里云服务器的sdk是免费的吗 发布:2025-03-16 03:33:04 浏览:8
卸载linux软件 发布:2025-03-16 03:19:07 浏览:809
太平天国迅雷下载ftp 发布:2025-03-16 03:13:19 浏览:65