Android定时器,更新数据

做个笔记,Android中常用的定时器,用于定时更新ui数据等。

1.Handler + Runnable定时器

private Handler mHandler;

private Runnable
mRunnable;

mHandler = new Handler();

mRunnable = new Runnable() {

public
void
run () {

//更新数据的方法

update();

}

};

//定时启动线程(执行的线程,时间毫秒)

mHandler.postDelayed(mRunnable,4000);

//移除Handler中的线程

mHandler.removeCallbacks(mRunnable);

==================================================

2.Timer +TimerTask 定时器

Timertimer = new Timer();

timer.schedule(new TimerTask() {

@Override

public
void
run() {

// 执行的方法

sendMSG();

}

}, 4000);  //执行的时间毫秒

3.//发送message消息

void sendMSG() {

//handler message消息

Message message = new Message();

message.what = MSG;

mHandler.sendMessage(message);

}

------Handler接收消息机制------

class MyHandlerextends Handler {

@Override

public
void
handleMessage(Message msg) {

// TODO Auto-generated method stub

super.handleMessage(msg);

if (msg.what ==MSG) {

//更新数据的方法

update();

}

}

};

4.每隔一段时间执行的定时器

private Timer timer;

private Handler mShowHandler = new Handler();

//启动定时器

if (timer == null) {

timer = new Timer();

timer.scheduleAtFixedRate(new RefreshTask(), 0, 800);  //每800毫秒执行一次

}

//计时器

class RefreshTask extends TimerTask {

@Override

public void run() {

//可在此加入判断,判定什么情况执行更新

// if( i=0 ) {

mShowHandler.post(new Runnable() {

@Override

public void run() {

//更新数据方法

update();

}

}

//                    }

});

//停止计时器

if(timer != null){

timer.cancel();

timer = null;

}

---------------------------------------------------------------------------------------------------

Android定时器,更新数据,码迷,mamicode.com

时间: 2024-10-14 13:16:51

Android定时器,更新数据的相关文章

Android ViewPager更新数据

ViewPager也是一个常用的组件 与ListView类似 当绑定数据后 想刷新数据 需要在适配器中添加如下方法 protected PagerAdapter galleryAdapter = new PagerAdapter() { @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == ((View)arg1); } @Override public int getCount()

Android FragmentPagerAdapter 更新数据

在使用ViewPager+FragmentPagerAdapter时候,更新Fragment里数据是不起作用,FragmentPagerAdapter添加或减少Fragment时,前面的Fragment内容更新不起作用等等问题,有的做法是暴力删除fragment列表,如 List<Fragment> fragments = getSupportFragmentManager().getFragments(); for (int i = fragments.size() - 1; i >=

Android ListView动态更新数据

ListView就是可以显示一行行Item的控件,有时候数据非常多,通常需要分页显示,但为了减少用户的输入,我们可以动态更新ListView,把下一页要显示的数据的添加到当前ListView中. 先看看效果: 需要注意的是在什么时候去更新数据 ,listVIew的setOnScrollListener监听是否滚到了最后一条记录, 取到的数据加到list中,最后记得调用adapter的notifyDataSetChanged,通知listview改变. 不废话,上代码. 主文件: mport ja

Android——Listview不用notifydatasetchanged更新数据的方法

一.介绍 先来介绍一下listview更新数据的几种方法,目前我知道的方法有如下几种: 1. 每次更新数据时都调用listview.setadapter(); 2. 每次更新数据时都调用adapter.notifydatasetchanged(): 3. 在自定义的adapter里添加更新函数update; 博客撰写人:It一zhai男 转载请标明地址:http://blog.csdn.net/u013293125/article/details/52858396 这里,我们将会一个一个来介绍,

Android数据库更新并保留原来数据的实现

Android应用程序更新的时候如果数据库修改了字段需要更新数据库,并且保留原来的数据库数据: 这是原有的数据库表 CREATE_BOOK = "create table book(bookId integer primarykey,bookName text);"; 然后我们增加一个字段: CREATE_BOOK = "create table book(bookId integer primarykey,bookName text,bookContent text);&q

Android中XML数据解析

转载请注明出处:http://blog.csdn.net/yegongheng/article/details/38296207 XML初步 今天我们来学习另一种非常重要的数据交换格式-XML.XML(Extensible Markup Language的缩写,意为可扩展的标记语言),它是一种元标记语言,即定义了用于定义其他特定领域有关语义的.结构化的标记语言,这些标记语言将文档分成许多部件并对这些部件加以标识.XML 文档定义方式有:文档类型定义(DTD)和XML Schema.DTD定义了文

Android Learning:数据存储方案归纳与总结

前言 最近在学习<第一行android代码>和<疯狂android讲义>,我的感触是Android应用的本质其实就是数据的处理,包括数据的接收,存储,处理以及显示,我想针对这几环分别写一篇博客,记得我的学习心得,也希望跟各位新手同学相互努力促进.今天这篇博客,我想介绍一下数据的存储,因为数据的接收,存储,处理以及显示这几环环环相扣,而数据的存储直接关系到数据的处理和显示,所以显得尤为重要. 所以本文针对数据存储的常见方案和其使用进行了归纳.分为程序内存储和程序间数据访问,程序内存储

Android笔记(四十三) Android中的数据存储——SQLite(五)delete

SQLite通过delete()方法删除数据 delete()方法参数说明: delete()方法参数 对应sql部分 描述 table delte from table_name 要删除的表 whereClause where column 删除条件 whereArgs where column=? 删除条件的参数 看代码: MainActivity.java package cn.lixyz.sqlite; import android.app.Activity; import androi

Android多线程更新UI的方式

Android下,对于耗时的操作要放到子线程中,要不然会残生ANR,本次我们就来学习一下Android多线程更新UI的方式. 首先我们来认识一下anr: anr:application not reponse:应用程序无响应 主线程:UI线程 anr产生的原因:主线程需要做很多重要的事情,响应点击事件,更新ui,如果在主线程里面阻塞时间过久,应用程序就会无响应,为了避免应用程序出现anr,所有的耗时的操作,都应该放在子线程中执行. 认识了anr后,我们就来学习一下怎样在Android下开启多线程