- 浏览: 542850 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
-
tangyunliang:
大哥你太历害了谢谢
Android基于XMPP Smack Openfire开发IM【四】初步实现两个客户端通信 -
u013015029:
LZ,请问下,在// 添加消息到聊天窗口 , 这里获取Ed ...
Android基于XMPP Smack Openfire开发IM【四】初步实现两个客户端通信 -
endual:
怎么保持会话,我搞不懂啊
Android基于XMPP Smack Openfire开发IM【一】登录openfire服务器 -
donala_zq:
显示:[2013-11-30 11:50:36 - Andro ...
android-----------新浪微博 -
donala_zq:
哥,运行不了啊
android-----------新浪微博
[img]
[/img]
方法一
Timer与TimerTask(Java实现)
方法二
TimerTask与Handler(不用Timer的改进型)
方法三
方法四
Handler与Thread(不占用UI线程)
方法五
计时与倒计时
方法1,方法2和方法3,都是倒计时
方法4,方法5,都是计时
计时和倒计时,都可使用上述方法实现(代码稍加改动)
UI线程比较
方法1,方法2和方法3,都是在UI线程实现的计时;
方法4和方法5,是另开Runnable线程实现计时
实现方式比较
方法1,采用的是Java实现,即Timer和TimerTask方式;
其它四种方法,都采用了Handler消息处理
推荐使用
如果对UI线程交互要求不很高,可以选择方法2和方法3
如果考虑到UI线程阻塞,严重影响到用户体验,推荐使用方法4,另起线程单独用于计时和其它的逻辑处理
方法5,综合了前几种方法的优点,是最简的

[/img]
方法一
Timer与TimerTask(Java实现)
public class timerTask extends Activity{ private int recLen = 11; private TextView txtView; Timer timer = new Timer(); public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.timertask); txtView = (TextView)findViewById(R.id.txttime); timer.schedule(task, 1000, 1000); // timeTask } TimerTask task = new TimerTask() { @Override public void run() { runOnUiThread(new Runnable() { // UI thread @Override public void run() { recLen--; txtView.setText(""+recLen); if(recLen < 0){ timer.cancel(); txtView.setVisibility(View.GONE); } } }); } }; }
方法二
TimerTask与Handler(不用Timer的改进型)
public class timerTask extends Activity{ private int recLen = 11; private TextView txtView; Timer timer = new Timer(); public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.timertask); txtView = (TextView)findViewById(R.id.txttime); timer.schedule(task, 1000, 1000); // timeTask } final Handler handler = new Handler(){ @Override public void handleMessage(Message msg){ switch (msg.what) { case 1: txtView.setText(""+recLen); if(recLen < 0){ timer.cancel(); txtView.setVisibility(View.GONE); } } } }; TimerTask task = new TimerTask() { @Override public void run() { recLen--; Message message = new Message(); message.what = 1; handler.sendMessage(message); } }; }
方法三
Handler与Message(不用TimerTask) public class timerTask extends Activity{ private int recLen = 11; private TextView txtView; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.timertask); txtView = (TextView)findViewById(R.id.txttime); Message message = handler.obtainMessage(1); // Message handler.sendMessageDelayed(message, 1000); } final Handler handler = new Handler(){ public void handleMessage(Message msg){ // handle message switch (msg.what) { case 1: recLen--; txtView.setText("" + recLen); if(recLen > 0){ Message message = handler.obtainMessage(1); handler.sendMessageDelayed(message, 1000); // send message }else{ txtView.setVisibility(View.GONE); } } super.handleMessage(msg); } }; }
方法四
Handler与Thread(不占用UI线程)
public class timerTask extends Activity{ private int recLen = 0; private TextView txtView; public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.timertask); txtView = (TextView)findViewById(R.id.txttime); new Thread(new MyThread()).start(); // start thread } final Handler handler = new Handler(){ // handle public void handleMessage(Message msg){ switch (msg.what) { case 1: recLen++; txtView.setText("" + recLen); } super.handleMessage(msg); } }; public class MyThread implements Runnable{ // thread @Override public void run(){ while(true){ try{ Thread.sleep(1000); // sleep 1000ms Message message = new Message(); message.what = 1; handler.sendMessage(message); }catch (Exception e) { }
方法五
Handler与Runnable(最简单型) public class timerTask extends Activity{ private int recLen = 0; private TextView txtView; public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.timertask); txtView = (TextView)findViewById(R.id.txttime); runnable.run(); } Handler handler = new Handler(); Runnable runnable = new Runnable() { @Override public void run() { recLen++; txtView.setText("" + recLen); handler.postDelayed(this, 1000); } }; }
计时与倒计时
方法1,方法2和方法3,都是倒计时
方法4,方法5,都是计时
计时和倒计时,都可使用上述方法实现(代码稍加改动)
UI线程比较
方法1,方法2和方法3,都是在UI线程实现的计时;
方法4和方法5,是另开Runnable线程实现计时
实现方式比较
方法1,采用的是Java实现,即Timer和TimerTask方式;
其它四种方法,都采用了Handler消息处理
推荐使用
如果对UI线程交互要求不很高,可以选择方法2和方法3
如果考虑到UI线程阻塞,严重影响到用户体验,推荐使用方法4,另起线程单独用于计时和其它的逻辑处理
方法5,综合了前几种方法的优点,是最简的
发表评论
-
Android中如何模拟一次点击(touch)事件
2014-05-06 10:41 0在Android中有时需要模拟某一个View的touch事件, ... -
Android程序Crash时的异常上报
2014-04-28 18:15 0http://blog.csdn.net/singwhatiw ... -
android程序中证书签名校验的方法
2014-04-28 17:58 2039android程序中证书签名校验的方法一 2013-02 ... -
MD5理解错了,哎
2014-03-17 14:14 0MD5只对数据加密是无法解密的,也就是说,你把100加密后,就 ... -
Android 获取网络时间
2014-03-12 11:42 2054Android 获取网络时间 在网上看到的最常见的方式有: ... -
SQLite清空表并将自增列归零
2014-03-05 18:02 1580SQLite清空表并将自增列归零 作者:Zhu Yanfeng ... -
Handler小看一下
2013-11-11 16:42 0android handler调用post方法还是阻塞 su ... -
Frame Animation小看一下
2013-10-12 16:30 834Demo运行效果图: 源码: -
动画小学一下
2013-10-12 16:14 764转自: http://www.eoeandroid.com/f ... -
Android 动画之ScaleAnimation应用详解
2013-10-12 15:49 1043===============eoeAndroid社区推荐:= ... -
android开发中的一个工具类
2013-06-19 16:04 0package com.wanpu.login.dialog; ... -
android TextView怎么设置个别字体颜色并换行?
2013-06-20 09:25 1723(1)、TextView 设置个别字体颜色 TextView ... -
Android开发之文件下载,状态时显示下载进度,点击自动安装
2013-05-07 15:38 1476在进行软件升级时,需要进行文件下载,在这里实现自定义的文件下载 ... -
android中的状态保存
2013-04-07 14:21 994package com.zzl.call; import ... -
android动画基础:tween动画
2013-04-06 11:21 1289工程结构图: [img] [/img] 四个动画的xml ... -
面试中遇到的几个问题
2013-06-09 11:56 1048SAX与DOM之间的区别 SAX ( ... -
Android获取其他包的Context实例,然后调用它的方法,反射!!!
2013-03-25 10:32 1239Android中有Context的概念,想必大家都知道。Con ... -
Android的内存机制和常见泄漏情形
2013-03-06 16:55 833一、 Android的内存机制 Android的程序由Ja ... -
JUnit测试小小demo
2013-03-06 16:37 1209运行效果图: [img] [/img] 项目结构图 ... -
android开发中的异常小工具
2013-03-04 15:53 915package com.zzl.tools; impor ...
相关推荐
Android计时与倒计时实现限时抢购的5种方法是Android开发中常见的需求,特别是在购物网站的促销活动中,倒计时限制购物时间或者折扣的时间是非常常见的,下面我们将详细介绍Android计时与倒计时实现限时抢购的五种...
综上所述,实现Android限时抢购功能的关键在于自定义Adapter的构建、倒计时逻辑的处理以及合理的数据模型设计。通过合理的UI布局和网络请求,可以为用户提供流畅、实时的抢购体验。在实际开发中,还应考虑异常处理、...
在Android开发中,抢购活动通常会设置倒计时来增加紧张感和用户参与度,本文将详细讲解如何使用`CountDownTimer`类实现抢购倒计时的逻辑。`CountDownTimer`是Android SDK提供的一种轻量级的计时器,非常适合用于这种...
在Android开发中,"android listview实现抢购倒计时"是一个常见的需求,尤其是在电商应用中,用于模拟商品抢购的紧张氛围。本教程将详细讲解如何在ListView中实现这样的功能,让每个列表项都能显示实时更新的倒计时...
在Android开发中,倒计时(CountDownTimer)是一个常用的功能,尤其在电商应用中,如京东商城,常用于限时抢购、倒计时显示等场景。本项目"Android倒计时 Android仿京东倒计时 Android商城倒计时"正是针对这种需求而...
在Android开发中,限时抢购页面常常涉及到动态更新的倒计时显示,这通常与ListView的使用密切相关。ListView因其高效的数据展示能力而被广泛应用,但同时也存在一些挑战,如倒计时的正确显示和列表滚动时的卡顿问题...
在Android中,有两种主要的实现倒计时的方法:`CountDownTimer`类和`Handler`配合`Runnable`。这里我们重点介绍`CountDownTimer`,因为它更易于使用且适合倒计时场景。 `CountDownTimer`是Android提供的一个内置类...
定时器与倒计时** 在Android中,倒计时功能通常通过`CountDownTimer`类实现。这是一个抽象类,需要我们覆盖它的`onTick`和`onFinish`方法,`onTick`在每间隔一定毫秒时调用,`onFinish`在倒计时结束时调用。项目中...
在Android应用开发中,有时我们需要实现一种功能,即在用户界面上显示3秒倒计时,用户可以选择在倒计时结束前点击界面来取消自动关闭,或者等待倒计时结束后,程序自动关闭界面。这样的设计可以增加用户体验,给用户...
【Android高级应用源码-活动限时抢购倒计时案例】是一个典型的Android应用程序开发实例,主要涉及了在Android平台上实现动态、实时的倒计时功能,常见于电商平台的限时抢购场景。通过分析这个源码,我们可以深入学习...
本篇文章将深入探讨如何高效地在Android RecycleView中实现所有item的倒计时功能。 首先,我们需要理解RecycleView的工作原理。它通过复用已滚动出屏幕的view来节省内存,这意味着一个view可能被用来显示不同的数据...
在Android开发中,创建一个类似商品抢购列表的界面,其中包含倒计时功能,是一项常见的需求。这个任务的关键在于正确地实现ListView的Adapter,并优化显示性能,避免因视图复用导致的问题。以下是一些关于如何实现这...
本教程将详细介绍如何在Android环境中实现这些功能,包括开始计时、开始倒计时、暂停、继续以及重置。 首先,我们需要了解Android中的两种主要时间处理类:`CountDownTimer`和`Chronometer`。`CountDownTimer`适用...
在Android开发中,创建一个倒计时欢迎页面是一种常见的用户交互设计,它可以为用户提供一种预期的等待体验,尤其是在应用启动时。在这个特定的项目中,"android studio倒计时三秒欢迎页面"是一个使用Android Studio...
本文将深入探讨如何创建一个简单的Android倒计时程序,并基于提供的C#倒计时客户端文件,我们可以推断出虽然标题提及的是Android,但可能包含了跨平台的C#实现。 1. **基本概念** - **倒计时(Countdown)**: 是一...
本文将深入探讨如何在Android中实现倒计时功能,以及如何将其应用到视频播放器和歌曲倒计时等具体场景。 首先,让我们了解Android中的`CountDownTimer`类。这个类是Android SDK提供的一个抽象类,用于执行一个固定...
在Android中,可以使用`DatePicker`和`TimePicker`对话框让用户选择日期和时间,然后将这些选择与倒计时结合,创建一个基于选定日期和时间的倒计时。 关于倒计时多久刷新一次UI,开发者需要权衡性能和用户体验。...
你可以在这里显示剩余时间,或者执行其他与倒计时相关的操作。 **onFinish()方法** 当倒计时结束时,`onFinish()`方法会被调用。这个方法通常用于执行倒计时结束时需要完成的任务,如显示提示信息或执行下一步操作...