导航:首页 > 操作系统 > 安卓如何实现倒计时页面

安卓如何实现倒计时页面

发布时间:2023-05-31 04:16:50

A. android实现计时与倒计时的几种方法

Android实现计时与倒计橡册时的五种含模方法:

方梁老宏法一
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);
}
};
}
linux

方法二
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) {
}
}
}
}
}

方法三
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.schele(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.schele(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与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);

handler.postDelayed(runnable, 1000);
}

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,综合了前几种方法的优点,是最简的

B. 安卓手机有没有时间倒计时的功能


一般打开时钟就碧简可以看到
其实,要在安卓手机上设置倒计时很容易,只需安装使用敬业签便可实现,因为它不仅能适用于Android、harmony和iOS系统的手机,同时还自带分条记事、待办提醒和倒计时等功能,并且提醒功能也比较全面,所以既能满足我们记事提醒的需求,又能在开启“显示剩余到期时间”的功能后,使所有所有未到期提醒的便签自动显示出则慧兆倒计时时间孙租。

C. 怎么把倒计时弄到手机桌面上来

步骤如下:

1、在手机软件市场找到“日期倒计时插件”。

D. 手机桌面倒计时软件怎么弄

可参考vivo手机以下倒计时的方法:
原子组件倒计时:1、经典桌面中,长按桌面空白处进入桌面编辑--原子组件--贴纸--长按“倒计时贴纸”拖动添加到桌面,再点击该组件--设置目标日期即可。镇瞎
2、探索桌面中唤锋向上滑动---原子组件--贴纸--长按“倒计时贴纸”拖动添加到桌面,再点击该组件--设置目标日期即可。
闹钟御链空倒计时:在手机的闹钟时钟--计时器--设置需要计时的时间和提醒铃声即可。
日历倒计时:在手机日历--点击"+"图标--点击“...”--添加倒数日--设置事件名称、时间、提醒方式等即可。

E. 怎样在安卓系统的手机屏幕上显示高考倒计时

手机暂时不能将高考倒计时在桌面上显示,但是可以借助手机日历操作,因为华为、oppo、vivo、小米日历都能设置倒计时,我们只需在手机日历中选择“+”新建日程,并在更多类型中点击倒数日,然后做到对应事项的文字备注后,再设置开始和结束提醒的时间,随后点击“完成”即可。

F. Android实现引导页倒计时的多个方式

1.util包下的键滚Timer实现倒计时:备银

2.使用Handler实现倒计时仿亮宴

3.使用Rxjava实现倒计时

G. android 从第一个页面跳转到第二个页面之后 在第二个页面的按钮上开始一个倒计时 要怎么实现

可以使用Handler来做


比如下面的代码片段,开始一个30秒的倒计时

在Application.onCreate()里TestMain.getInstance().setContext(this);

或则在你的第二个页面onCreate()里TestMain.getInstance().setContext(this);


之后启动倒计时并刷新页面

TestMain.getInstance().startCountdownTask(new CountdownTask("taskid1", 30));

publicclassTestMain{

//用于保存倒计时任务已经完成的计数
;
;

=newTestMain();
privateTestMain(){}

(){
returnINSTANCE;
}

//在主线程里调用,比如Application.onCreate()中TestMain.getInstance().setContext(this);
publicvoidsetContext(Contextcontext){
mCountdownPrefs=context.getSharedPreferences("countdwon",Context.MODE_PRIVATE);
mCountdownHandler=newHandler();

}


//在需要倒计时任务的时候调用
publicvoidstartCountdownTask(){
//如果有未完成的倒计时任务,读取上次倒计时到几了,否则就是设置的count次
intcount=mCountdownPrefs.getInt(countdownTask.taskId,countdownTask.count);
countdownTask.count=count;
//首先执行一次
countdownTask.notify(countdownTask.count);
//之后每一秒执行一次
mCountdownHandler.postDelayed(newRunnable(){
@Override
publicvoidrun(){
//1秒执行一次
if(countdownTask.countDown()){
mCountdownHandler.postDelayed(this,1000);
}else{
//倒计时结束
mCountdownHandler.removeCallbacks(this);
//移除任务
mCountdownPrefs.edit().remove((countdownTask.taskId)).commit();
}
}
},1000);

}

{
/**倒计时起始值*/
privateintcount=30;
/**倒计时任务id*/
privateStringtaskId="";

publicCountdownTask(intcount,StringtaskId){
this.count=count;
this.taskId=taskId;
}

privatebooleancountDown(){
count--;
booleanisContinue=count>=0;
notify(Math.max(count,0));
returnisContinue;
}

//通知更新
publicvoidnotify(intcurrent){
//UI更新倒计时数字,current是当前倒计时到多少了
}
}
}

H. android 实现同时多个倒计时效果怎么做

安卓实现同时多个倒计时效果的步骤:

  1. 我们首先需要在输入框中输入一个秒数,比如:12,然后获取输入框中的值,显示在一个TextView中;

  2. 点击“开始倒计时”按钮,每隔一秒钟,秒数减1,然后显示在TextView中;

  3. 点击“停止倒计时”按钮,计时器停止运行,当再次点击“开始倒计时”按钮,计时器继续运行。

平时用的每个商品都应该有两个属性值,这里叫它deadLine和isOvere吧,表示商品的到期时间和是否到期,那么倒计时可以考虑这么实现:设置一个主计时器,每隔1秒发出消息告诉GridView现在的时间,GridView的Item获得这个时间之后就和deadLine比较,如果已经到deadline了,就把数据源中的这项标记成已到期(修改isOvere的值为true);没到deadline,就计算还差多少时间,显示到GridView的Item里。

阅读全文

与安卓如何实现倒计时页面相关的资料

热点内容
加密思维币 浏览:688
魅族访客文件夹 浏览:50
添加的文件夹怎么找 浏览:615
程序员涉黄 浏览:698
maven编译resources下的js 浏览:519
ubuntu文件移动命令 浏览:227
安卓i怎么查找苹果手机 浏览:949
云服务器宕机概率 浏览:231
在线买药用什么app知乎 浏览:813
ubuntu解压xz文件 浏览:674
宏杰加密时电脑关机 浏览:388
自己写单片机编译器 浏览:599
单片机按键闪烁 浏览:380
为什么icloud总是显连接服务器失败 浏览:888
如何设置域控服务器 浏览:740
想在上海租房子什么app好 浏览:186
编译程序各部分是必不可少的吗 浏览:887
编程不超过十行 浏览:765
数电编译器的作用 浏览:339
时间算法与现在有什么区别 浏览:164