作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我需要在 10 秒后隐藏一个 TextView。我以为我可以实现一个计时表,当耗时大于 10000 毫秒时,我隐藏了 TextView。我的问题是计时器只滴答一次然后停止。知道我错过了什么吗?
Activity ctx = this;
...
private void ShowText(String message)
{
txtProceed.setText(message);
txtProceed.setVisibility(View.VISIBLE);
chronoHideText = new Chronometer(ctx);
chronoHideText.setOnChronometerTickListener(new OnChronometerTickListener()
{
public void onChronometerTick(Chronometer arg0) {
long elapsed = SystemClock.elapsedRealtime() - chronoHideText.getBase();
Log.i("Chrono",String.valueOf(elapsed));
if (elapsedTime>10000)
{
txtProceed.setVisibility(View.INVISIBLE);
chronoHideText.stop();
}
}
}
);
chronoHideText.setBase(SystemClock.elapsedRealtime());
chronoHideText.start();
}
感谢 Janusz 的帮助。现在行之有效的解决方案是:
Handler splashHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case 0:
//remove SplashScreen from view
txtProceed.setVisibility(View.INVISIBLE);
break;
}
super.handleMessage(msg);
}
};
Message msg = new Message();
msg.what = 0;
splashHandler.sendMessageDelayed(msg, 10000);
最佳答案
您可以使用 handler发送延迟消息。方法 sendMessageDelayed 使您能够指定一个时间,在该时间过去后您将收到一条消息。如果您只需要在耗时后做一件事,您可以将 View 隐藏在 handleMessage 中。方法。
这样你就不需要自己测量时间,每秒钟或每毫秒都进行计算工作。在 Android 操作系统传送消息之前,您的应用不会占用任何 CPU 时间。
关于Android 计时器滴答一次然后停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4022628/
有人知道R中的槽是什么吗? 我没有找到其含义的解释。我得到一个递归定义:“槽函数返回或设置有关对象的各个槽的信息” 帮助将不胜感激,谢谢 -胡同 最佳答案 插槽链接到 S4 对象。槽可以被视为对象的一
我有一个字符串“a.b”,我想替换“.”和 ”_”。 gsub(".","_","a.b") 不能作为 .匹配所有字符。 gsub("\.","_","a.b") 只是给我一个错误。 阅读 ?gsub
我是一名优秀的程序员,十分优秀!