倒计时的三种解决方法

网上科普有关“倒计时的三种解决方法”话题很是火热,小编也是针对倒计时的三种解决方法寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。1、方...

网上科普有关“倒计时的三种解决方法”话题很是火热,小编也是针对倒计时的三种解决方法寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。

1、方法一:

? 利用CountDownTimer类

? //这个方法中的两个参数第一个是 倒计时的时长,第二个是每次减少的时间

CountDownTimer timer = new CountDownTimer(5000,1000) {

@Override

public void onTick(long millisUntilFinished) {

//donghua_textview展示数据的控件

donghua_textview.setText(millisUntilFinished/1000+"S");

}

//动画结束时调用的方法

@Override

public void onFinish() {

startActivity(new Intent(DonghuaActivity.this, LoginActivity.class));

}

};

//最后不要忘记调用start();方法

timer.start();

2、方法二:

//利用Timer类

int mSeconds = 5;

Timer timer = new Timer();

private Handler handler = new Handler() {

@Override

public void handleMessage(Message msg) {

super.handleMessage(msg);

if (msg.what == 1) {

if (mSeconds == 0) {

timer.cancel();

startActivity(new Intent(DonghuaActivity.this, LoginActivity.class));

} else if (mSeconds > 0) {

donghua_textview.setText(mSeconds + "S");

}

}

}

};

TimerTask task = new TimerTask() {

@Override

public void run() {

mSeconds--;

handler.sendEmptyMessage(1);

}

};

//调用timer类中的schedule方法

timer.schedule(task, 1000, 1000);

3、方法三:

利用handler发送延迟线程

? int mSeconds = 5;

? Handler handler =? new Handler();

private void changeSeconds() {

mSeconds--;

handler.postDelayed(new Runnable() {

@Override

public void run() {

main_textview.setText(mSeconds+"S");

if(mSeconds==0){

//在这里我们开启动画不做跳转

initDonghua();

}else{

changeSeconds();

}

}

},1000);

}

//初始化动画

? private void initDonghua() {

Animation animation = AnimationUtils.loadAnimation(MainActivity.this, R.anim.anim);

animation.setAnimationListener(this);

main_textview.startAnimation(animation);

}

private void initView() {

main_textview = (TextView) findViewById(R.id.main_textview);

}

@Override

public void onAnimationStart(Animation animation) {

}

@Override

public void onAnimationEnd(Animation animation) {

//在动画结束的时候进行跳转

Intent intent = new Intent(MainActivity.this, SecondActivity.class);

startActivity(intent);

}

@Override

public void onAnimationRepeat(Animation animation) {

}

Dialog关不掉

countdown

英 ['ka?ntda?n]?

美 [?ka?nt?da?n]

n.倒数读秒,倒计时; 大事临近的时期; 准备过程,准备工作

1. the countdown to the wedding

婚礼的临近

2. If the countdown timer ever hits zero, do your validation processing.

处理这种情况的方法是在输入的同时使用递减计时器,每次击键重新计时。如果递减计时器变为零,就开始验证。

3. This is the final countdown for Newcastle Utd.

这是纽卡斯尔联队的最后倒计时了。

4. The director began the countdown ten seconds before the broadcast.

距离开播还有十秒,导播开始倒读数。

场景描述:我在A活动里,onCreate初始化了一个DIalog和一个CountDownTimer类型的计数器,并在计时器的构造中,传入当前的handler对象。计时器被我写成单例的。

然后当我点击A按钮的时候,启动Dialog和计时器,计时器倒计时5秒,发出消息,在handleMessage中,收到发送的消息,然后关闭Dialog。

第一次进入活动,点击A按钮,过5秒,收到消息然后关闭dialog,这个操作是正常的。但是当我退出当前活动

第二次进入活动,点击A按钮,过5秒,收到消息后,就关闭不掉这个dialog了。整个活动都是重新初始化的。

分析:经过一番测试之后,我发现dialog中的mShowing这个属性,在我第二次进入活动,并且dialog.show()调用之后,被修改为true。过五秒后,在handleMessage中,调用dialog.hide(),这时dialog的mShowing这个属性确是false,然后就关不掉dialog了。

如何解决:最后我是如何解决的呢,我把CountDownTimer这个计时器创建的单例给取消了,每次都重新创建一个新的对象并接收当前活动的handler对象。

后续:

情况1:CountDownTimer是单例模式,并持有当前活动的handler对象

messageDialog1? hashcode:29560034是我第一次进入活动创建的dialog对象,然后我退出当前活动。

第二次进入活动,创建了一个新的dialog对象messageDialog1?hashcode:96367861

但是,当五秒过后,在handleMessage中,收到消息关闭dialog时,这个dialog对象反而是第一次创建的dialog对象

看hashcode

所以关闭不了dialog,因为根本就不是同一个对象。原因会继续找。

TIPS:这里做一个小结,建议不要在单例类中,持有hanlder对象,否则就会发生这种操蛋的问题。

关于“倒计时的三种解决方法”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!

本文来自作者[痴玉]投稿,不代表创健号立场,如若转载,请注明出处:https://chuangjian-nb.com/cshi/202507-2132.html

(387)

文章推荐

  • 实测教程“聚玩麻将挂要多少钱一个(音乐编辑器)

    网上科普有关“聚玩麻将挂要多少钱一个”话题很是火热,小编也是针对聚玩麻将挂要多少钱一个寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。  您好,聚玩麻将挂要多少钱一个这款游戏可以开挂的,确实是有挂的,通过微信【游戏】很多玩家在这款游戏中打牌都会发现很多

    2025年03月04日
    92
  • 分享干货”微乐买月卡能提高胜率吗”分享装挂技巧步骤

    分享干货”微乐买月卡能提高胜率吗网上科普有关“分享干货”微乐买月卡能提高胜率吗”话题很是火热,小编也是针对分享干货”微乐买月卡能提高胜率吗寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。  您好,分享干货”微乐买月卡能提高胜率吗这款游戏可以开挂

    2025年03月07日
    81
  • 3分钟学会“微乐作弊软件免费下载手机版安装”原来真实可以装挂

    3分钟学会“微乐作弊软件免费下载手机版安装网上科普有关“3分钟学会“微乐作弊软件免费下载手机版安装”话题很是火热,小编也是针对3分钟学会“微乐作弊软件免费下载手机版安装寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。  您好,3分钟学会“微乐作

    2025年03月20日
    63
  • 三分钟普及“河南推倒胡麻将真的有挂吗(开挂神器怎么用)

    河南推倒胡麻将真的有挂吗网上科普有关“河南推倒胡麻将真的有挂吗”话题很是火热,小编也是针对河南推倒胡麻将真的有挂吗寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。  您好,河南推倒胡麻将真的有挂吗这款游戏可以开挂的,确实是有挂的,通过微信【】很

    2025年04月25日
    68
  • 实测辅助”微乐辅助器免费版v3.0(透视挂真的假的)

    微乐辅助器免费版v3.0网上科普有关“微乐辅助器免费版v3.0”话题很是火热,小编也是针对微乐辅助器免费版v3.0寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。  您好,微乐辅助器免费版v3.0这款游戏可以开挂的,确实是有挂的,通过微信【】很

    2025年05月23日
    51
  • 实测辅助”欢乐途游麻将挂在哪购买(详细真的有挂)

    网上科普有关“欢乐途游麻将挂在哪购买”话题很是火热,小编也是针对同城衡阳字牌作弊开挂的方法寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。  您好,欢乐途游麻将挂在哪购买这款游戏可以开挂的,确实是有挂的,通过微信【游戏】很多玩家在这款游戏中打牌都会

    2025年05月24日
    102
  • 实测辅助”玄龙二厅有挂吗”分享装挂技巧步骤

    玄龙二厅有挂吗网上科普有关“玄龙二厅有挂吗”话题很是火热,小编也是针对玄龙二厅有挂吗寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。  您好,玄龙二厅有挂吗这款游戏可以开挂的,确实是有挂的,通过微信【】很多玩家在这款游戏中打牌都会发现很多用户的

    2025年05月25日
    37
  • 6秒懂!微乐内蒙古麻将挂下载(详细真的有挂)

    微乐内蒙古麻将挂下载网上科普有关“微乐内蒙古麻将挂下载”话题很是火热,小编也是针对微乐内蒙古麻将挂下载寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。  您好,微乐内蒙古麻将挂下载这款游戏可以开挂的,确实是有挂的,通过微信【】很多玩家在这款游戏

    2025年06月09日
    20
  • 6秒懂!聚宝盆究竟可以开挂吗(详细真的有挂)

    聚宝盆究竟可以开挂吗网上科普有关“聚宝盆究竟可以开挂吗”话题很是火热,小编也是针对聚宝盆究竟可以开挂吗寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。  您好,聚宝盆究竟可以开挂吗这款游戏可以开挂的,确实是有挂的,通过微信【】很多玩家在这款游戏

    2025年06月26日
    11
  • 002509(002509行情)

    股票300241_股票行情0025091、对于股票300241(瑞丰光电),投资者应关注其所属行业的发展趋势和公司的基本面情况,短期内可能需要保持谨慎态度。对于股票002509,尽管未提供具体公司名称,但投资者可以通过各大财经网站获取相关信息,并结合自身情况做出投资决策。在任何情况下,投资者都应保

    2025年07月02日
    16

发表回复

本站作者后才能评论

评论列表(4条)

  • 痴玉
    痴玉 2025年07月11日

    我是创健号的签约作者“痴玉”!

  • 痴玉
    痴玉 2025年07月11日

    希望本篇文章《倒计时的三种解决方法》能对你有所帮助!

  • 痴玉
    痴玉 2025年07月11日

    本站[创健号]内容主要涵盖:国足,欧洲杯,世界杯,篮球,欧冠,亚冠,英超,足球,综合体育

  • 痴玉
    痴玉 2025年07月11日

    本文概览:网上科普有关“倒计时的三种解决方法”话题很是火热,小编也是针对倒计时的三种解决方法寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。1、方...