在做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.schedule(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();
}
}

第一种方式还适用于消息通知的方式实现更新,第二种方式通常是主动去检查是否需要刷新。对于定时刷新这种使用第二种方式更好

更多相关文章

  1. Android(安卓)listview 注意的地方
  2. Android6.0 SystemUI之网络信号栏显示刷新
  3. android 使用Http的Get方式读取网络数据
  4. android中String与InputStream之间的相互转换方式
  5. Android图片放大缩小实现方式(一)
  6. Android(安卓)6.0权限获取方式-shouldShowRequestPermissionRati
  7. Activity使用Dialog样式导致点击空白处自动关闭的问题
  8. RecyclerView实现Item点击事件方法二
  9. Android(安卓)ListView优化之局部刷新(更新)(非notifyDataSetChange

随机推荐

  1. 关于android内核移植到YLP2440开发板
  2. android:showAsAction="never"是做什么用的
  3. android 自定义对话框
  4. Android小趣
  5. Android 移动端网络优化 (四)
  6. Android 去掉 ImageButton 的白色背景边
  7. I.MX6 Android(安卓)5.1 回到 Android(安
  8. android SQLite中query的用法
  9. Android(安卓)自定义ScrollView 实现拉下
  10. Android 沉浸式statusbar (5.0以上无阴影,s