1.需求

弹出提示的dialog,实现倒计时,结束后关闭dialog

2.dialog界面布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="500dp"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:orientation="vertical">
<TextView
android:id="@+id/counter"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/greater_magrin_space"
android:gravity="center"
android:text="10s"
android:textSize="@dimen/content_text_size_standard"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/greater_magrin_space"
android:gravity="center"
android:text="@string/title_sale"
android:textSize="@dimen/content_text_size_standard"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/content_header_space"
android:gravity="center"
android:text="@string/processing"
android:textSize="@dimen/content_text_size_standard"/>
<TextView
android:layout_width="match_parent"
android:layout_height="@dimen/greater_magrin_space" /> </LinearLayout>

3.AndroidManifest.xml文件设置

<activity android:name=".ProcessingDialogActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Holo.Light.Dialog.NoActionBar"
android:screenOrientation="portrait"/>

4.ProcessingDialogActivity实现

另开一个线程实现倒计时功能不占用UI线程

public class ProcessingDialogActivity extends Activity{
private TextView counter;
private int count = 10;
private boolean isEnd = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_processingdialog); counter = (TextView)findViewById(R.id.counter);
new Thread(new CounterThread()).start();
}
Handler handler = new Handler(){
public void handleMessage(Message message){
switch (message.what){
case 0:
if (count == 0){
finish();
}
counter.setText(String.valueOf(count)+"s");
break;
default:
break;
}
}
};
public class CounterThread implements Runnable{
@Override
public void run(){
while (!isEnd){
try {
Thread.sleep(1000);
count--;
if (count < 1){
isEnd = true;
}
Message msg = new Message();
msg.what = 0;
handler.sendMessage(msg);
}catch (Exception e){
e.printStackTrace();
}
}
}
}
}
效果如下图
aaarticlea/png;base64,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" alt="" />

Android中实现倒计时的更多相关文章

  1. Android中的倒计时实现

    一.android.os包下提供了倒计时的抽象工具类: public abstract class CountDownTimer { /** * Millis since epoch when ala ...

  2. Android开发案例 – 在AbsListView中使用倒计时

    在App中, 有多种多样的倒计时需求, 比如: 在单View上, 使用倒计时, 如(如图-1) 在ListView(或者GridView)的ItemView上, 使用倒计时(如图-2) 图-1 图-2 ...

  3. Android中使用Handler以及CountDownTimer实现包含倒计时的闪屏页面

    上一篇博文<Android中Handler使用浅析>通过实现倒计时闪屏页面的制作引出了Handler的使用方法以及实现原理,博文末尾也提到了实现过程中的Bug,有兴趣的朋友可以点击链接回去 ...

  4. Android中使用Handler以及CountDownTimer实现包括倒计时的闪屏页面

    上一篇博文<Android中Handler使用浅析>通过实现倒计时闪屏页面的制作引出了Handler的用法以及实现原理,博文末尾也提到了实现过程中的Bug,有兴趣的朋友能够点击链接回去看看 ...

  5. 浅谈android中只使用一个TextView实现高仿京东,淘宝各种倒计时

    今天给大家带来的是只使用一个TextView实现一个高仿京东.淘宝.唯品会等各种电商APP的活动倒计时.近期公司一直加班也没来得及时间去整理,今天难得歇息想把这个分享给大家.只求共同学习,以及自己兴许 ...

  6. android中倒计时控件CountDownTimer分析

    android中倒计时控件CountDownTimer分析 1 示例代码 new CountDownTimer(10000, 1000) { public void onTick(long milli ...

  7. 拓展 Android 原生 CountDownTimer 倒计时

    拓展 Android 原生 CountDownTimer 倒计时 [TOC] CountDownTimer 在系统的CountDownTimer上进行的修改,主要是拓展了功能,当然也保留了系统默认的模 ...

  8. Android中Handler使用浅析

    1. Handler使用引出 现在作为客户,有这样一个需求,当打开Activity界面时,开始倒计时,倒计时结束后跳转新的界面(思维活跃的朋友可能立马想到如果打开后自动倒计时,就类似于各个APP的欢迎 ...

  9. Android中三种计时器Timer、CountDownTimer、handler.postDelayed的使用

    在android开发中,我们常常需要用到计时器,倒计时多少秒后再执行相应的功能,下面我就分别来讲讲这三种常用的计时的方法. 一.CountDownTimer 该类是个抽象类,如果要使用这个类中的方法, ...

随机推荐

  1. highlight.js 页面 代码高亮

    官网:https://highlightjs.org/ 功能: 支持 155 种编程语言的语法解析:拥有 73 种样式 自动检测编程语言 可以在 node.js 平台上运行 支持各种标签 与任何 js ...

  2. Android下载图片/调用系统相机拍照、显示并保存到本地

    package com.example.testhttpget; import java.io.BufferedReader; import java.io.FileNotFoundException ...

  3. hihocoder SAM基础概念

    后缀自动机一·基本概念 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi:今天我们来学习一个强大的字符串处理工具:后缀自动机(Suffix Automaton,简称 ...

  4. HR开发 SuccessFactors与HCM数据映射

    SuccessFactors Employee Central ----->> HCM 增强点 ES_PAOCF_EC_TOOLS HCM ----->> SuccessFac ...

  5. winform 异步读取数据 小实例

    这几天对突然对委托事件,异步编程产生了兴趣,大量阅读前辈们的代码后自己总结了一下. 主要是实现 DataTable的导入导出,当然可以模拟从数据库读取大量数据,这可能需要一定的时间,然后 再把数据导入 ...

  6. ubuntu下安装wordpress

    网上大多都是说放在var/www下面 实际上新版的ubuntu默认放在 var/www/html 下面 当然这个配置是可以修改的

  7. asp.net下AjaxMethod的使用方法

    使用AjaxMethod可以在客户端异步调用服务端方法,简单地说就是在JS里调用后台.cs文件里的方法, 做一些JS无法做到的操作,如查询数据库 使用AjaxMethod要满足一下几点: 1.如果还没 ...

  8. win7 部署WCF遇到的问题记录

    1. IIS7 handler Mappings默认没有*.svc 的处理,需要安装(页面错误提示好像会提示缺少相应的处理器,记不清楚了) 方法:使用 ServiceModelReg.exe 工具 路 ...

  9. 说说C#的async和await 解决卡顿问题 转

    C# 5.0中引入了async 和 await.这两个关键字可以让你更方便的写出异步代码. 看个例子: 可以看到,async和await关键字只是把上面的代码变得更简单易懂而已. public cla ...

  10. TCP/IP协议和HTTP协议 浩哥指教

    TCP和IP在HTTP协议的上层,HTTP算是应用层,IP协议建立的是电脑跟电脑之间的联系,具体过程是,物理上,通过网线,解析MAC地址,到达路由,路由告诉数据将要去哪里,对方电脑通过NDS解析,解析 ...