导航:首页 > 操作系统 > android计时器代码

android计时器代码

发布时间:2022-12-09 23:38:26

A. android中计时器总结

java.util.Timer 的源码中看到Timer的构造方法

我们要用到的schele()方法如下:

另外Timer调用task还有以下方法

两秒钟之后timer_tv_1开始显示当前时间并每一秒更新一次

别忘了在onDestroy()中

B. 10分钟倒计时器代码

#include "time.h"
void main(){
int n,m,settime=10;
n=time(0);
printf("请输入倒计时时间(秒)");
scanf("%d",&settime);
while (settime!=0){
if (n!=time(0)){//如果时间过了1秒
settime--;//计时器减1
printf("%d\n",settime);//输入目前的倒计时
n=time(0);//更新当前时间
}
}
}

C. 如何用android设计一个程序包括闹钟,时钟,秒表,计时

Android的程序界面,找到名为图标:时钟,点击进入四个项目,闹钟,世界时钟,秒表,倒计时。您可以选择报警的那一个,看看里面是否有可以删除的闹钟。

D. as 3.0 怎么建立计时器 定时器,求指教

var h:String = "0";
var m:String = "0";
var s:String = "0";
var b:uint = 100;
var hous:TextField=new TextField();
hous.autoSize = TextFieldAutoSize.LEFT;
//当然这里还不是万能的格式脚本,因为你要求100秒,所以在此简化了。
hous.text="00:"+"0"+Math.floor(b/60)+":"+(b%60);
hous.border = true;
hous.borderColor = 0x996600;
hous.x = 100,hous.y = 75;
addChild(hous);
var timer:Timer = new Timer(1000);
timer.start();
timer.addEventListener(TimerEvent.TIMER,onTime);
function onTime(evt:TimerEvent):void
{
b--;
h = "00";
m=String(Math.floor(b/60));
s=String(b%60);
if (b/60<10)
{
m="0"+Math.floor(b/60);
}
if (b%60<10)
{
s = "0" + (b % 60);
}
hous.text = h + ":" + m + ":" + s;
if (b<=0)
{
hous.text = "计时结束";
evt.target.removeEventListener(TimerEvent.TIMER,onTime);
timer = null;
//如果想清除出文本,可以加上以下代码:
removeChild(DisplayObject(hous));
hous = null;

}
}

E. android中怎么使timecount自动开始计时

android计时器,时间计算器的实现方法,需要的朋友可以参考一下

需求:默认为"00:00:00",点击开始按钮时清零后开始计时,出现如10:28:34。点击停止的时候停止计时。
问题:使用Calendar
DateFormat的方法,不设置时区获取到的小时是本地时区的(东八区的就是8),设置成GMT标准时区获取到的时间是12小时(12:00:00),设置24小时制无效。
在开始时间加减各种小时都无效,而且计时只能到12小时就自动跳上去了,始终无法出现默认状态00:00:00开始计时的效果。
尝试各种时间设置方法无效后只能自己写一个根据秒数转换时间格式字符串的方法了,经过测试是没问题的,两位数只能显示99小时为最大,如需要更大小时数需要改改方法。
另外小时数也不能无限大,超过long数据类型长度会变成负数的,会出现异常的。

显示效果:

测试类:

复制代码
代码如下:

public class TestTime {
public
static void main(String[] args) {
TestTime tt = new
TestTime();
tt.showTimeCount(99*3600000+75*1000);

}

//时间计数器,最多只能到99小时,如需要更大小时数需要改改方法
public String
showTimeCount(long time) {

System.out.println("time="+time);
if(time >=
360000000){
return "00:00:00";
}
String
timeCount = "";
long hourc = time/3600000;
String hour =
"0" + hourc;
System.out.println("hour="+hour);
hour =
hour.substring(hour.length()-2, hour.length());

System.out.println("hour2="+hour);

long minuec =
(time-hourc*3600000)/(60000);
String minue = "0" +
minuec;
System.out.println("minue="+minue);
minue =
minue.substring(minue.length()-2, minue.length());

System.out.println("minue2="+minue);

long secc =
(time-hourc*3600000-minuec*60000)/1000;
String sec = "0" +
secc;
System.out.println("sec="+sec);
sec =
sec.substring(sec.length()-2, sec.length());

System.out.println("sec2="+sec);
timeCount = hour + ":" + minue +
":" + sec;
System.out.println("timeCount="+timeCount);

return timeCount;
}

}

实际例子:

复制代码
代码如下:

//时间计数器,最多只能到99小时,如需要更大小时数需要改改方法

public String showTimeCount(long time) {
if(time >=
360000000){
return "00:00:00";
}
String
timeCount = "";
long hourc = time/3600000;
String hour =
"0" + hourc;
hour = hour.substring(hour.length()-2,
hour.length());

long minuec =
(time-hourc*3600000)/(60000);
String minue = "0" +
minuec;
minue = minue.substring(minue.length()-2,
minue.length());

long secc =
(time-hourc*3600000-minuec*60000)/1000;
String sec = "0" +
secc;
sec = sec.substring(sec.length()-2, sec.length());

timeCount = hour + ":" + minue + ":" + sec;
return
timeCount;
}

private Handler stepTimeHandler;

private Runnable mTicker;
long startTime = 0;

//开始按钮

class startBtnListener implements OnClickListener {

@Override
public void onClick(View v) {
Button b =
(Button)v;
String buttonText =
b.getText().toString();

if("Start".equalsIgnoreCase(buttonText)){

b.setText("Stop");
// 清零 开始计时

stepTimeTV.setText("00:00:00");
stepTimeHandler = new
Handler();
startTime =
System.currentTimeMillis();
mTicker = new Runnable()
{
public void run() {
String
content = showTimeCount(System.currentTimeMillis() -
startTime);

stepTimeTV.setText(content);

long now =
SystemClock.uptimeMillis();
long next = now + (1000
- now % 1000);
stepTimeHandler.postAtTime(mTicker,
next);
}
};

//启动计时线程,定时更新
mTicker.run();

}else{
b.setText("Start");
//停止计时 Remove
any pending posts of Runnable r that are in the message
queue.

stepTimeHandler.removeCallbacks(mTicker);
}

}
}

用时间格式化的方式测试代码:

复制代码
代码如下:

//开始按钮 通过Calendar时间设置的方式,无法正常显示小时为0

class startBtnListener implements OnClickListener {

@Override
public void onClick(View v) {
Button b =
(Button)v;
String buttonText =
b.getText().toString();

if("Start".equalsIgnoreCase(buttonText)){

b.setText("Stop");
// 清零 开始计时

stepTimeTV.setText("00:00:00");
if (mCalendar == null)
{
mCalendar =
Calendar.getInstance();
TimeZone tz =
TimeZone.getTimeZone("GMT");//GMT+8

mCalendar.setTimeZone(tz);

mCalendar.get(Calendar.HOUR_OF_DAY);//24小时制

}
stepTimeHandler = new Handler();

//System.uptimeMillis()
//记录从机器启动后到现在的毫秒数,当系统进入深度睡眠时,此计时器将会停止

//System.currentTimeMillis()
//返回自1970年1月1日到现在的毫秒数,通常用来设置日期和时间
//System.elapsedRealtime()
//返回从机器启动后到现在的毫秒数,包括系统深度睡眠的时间,api里没有这个方法

//直接取得的是当地时区时间,当地时间跟时区有关,设置GMT后始终多12小时
startTime =
System.currentTimeMillis();//12*3600000 - 36*3600000减掉或者加上12小时都不行

mTicker = new Runnable() {
public
void run() {
//这个减出来的日期是1970年的 时间格式不能出现00:00:00
12:00:00
long showTime = System.currentTimeMillis()
- startTime;

Log.i(TAG,showTime+"");

mCalendar.setTimeInMillis(showTime + 13*3600000 +
1000);
String content = (String)
DateFormat.format(mFormat, mCalendar);

stepTimeTV.setText(content);

long now =
SystemClock.uptimeMillis();
long next = now + (1000
- now % 1000);
stepTimeHandler.postAtTime(mTicker,
next);
}
};

//启动计时线程,定时更新
mTicker.run();

}else{
b.setText("Start");
//停止计时 Remove
any pending posts of Runnable r that are in the message
queue.

stepTimeHandler.removeCallbacks(mTicker);
}

}
}

private Handler stepTimeHandler;
Calendar
mCalendar;
String mFormat = "yyyy-MM-dd hh:mm:ss";//yyyy-MM-dd

long startTime = 0;
private Runnable mTicker;

F. android studio怎么编写计时器

类似iOS中的NSTimer 定时器功能,开关控制随机几秒钟执行指定功能;

平台:Android

开发环境:android Studio

代码实现:

一. 创建Handler对象和Runnable对象

[java] view plain print?
Handler handler = new Handler();
Runnable runnable = new Runnable() {
@Override
public void run() {
if (mPageOpen){

if (interstitialAd.isLoaded()){ //示例-谷歌插页广告
interstitialAd.show();
}else {
AdRequest adRequest = new AdRequest.Builder().build();
interstitialAd.loadAd(adRequest);
}
int random = (int)(Math.random() * 10 +20)*1000; //随机时间循环执行
handler.postDelayed(this, random);
}
}
};

二. 开关控制

[java] view plain print?
Switch mSwith = (Switch) findViewById(R.id.switchPage);
mSwith.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
mPageOpen = true;
} else {
mPageOpen = false;
}

handler.postDelayed(runnable, 15000); //开关控制执行
}
});

三. 移除定时器

[java] view plain print?
handler.removeCallbacks(runnable);

G. 怎么在android悬浮窗口上实现倒计时

public class XuanfuTestActivity extends Activity {
/** Called when the activity is first created. */
int num=10;
String text;
Button button;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

button=new Button(getApplicationContext());//这里不能写this 否则没有效果
WindowManager wmManager=(WindowManager)getApplicationContext(). getSystemService(Context.WINDOW_SERVICE);
WindowManager.LayoutParams params=new WindowManager.LayoutParams();
params.type=WindowManager.LayoutParams.TYPE_PHONE ;
params.type=2002;
params.flags=40;
params.width=50;
params.height=50;
wmManager.addView(button, params);
handler.sendEmptyMessageDelayed(1, 1000);
}
Handler handler=new Handler(){

public void handleMessage(android.os.Message msg) {
if (msg.what==1) {
text=""+num--;
button.setText(text);
}
if (num<=0) {
num=0;
}else {
handler.sendEmptyMessageDelayed(1, 1000);
}
};
};

}

H. android中使用chronometer怎样创建倒计时器问题

在Android中,可以使用计时器来实现对时间的监测,这个类所实现的功能有开始计时,停止计时,重新计时,设置计时模式,下面列出计时器方法的原型:
long getBase();//返回基地的时间,由setBase(long)设置的
String getFormat();//返回当前字符串格式,此格式是通过setFormat()实现的
void setBase(long base);//设置时间,计数定时器指定的值
void setFormat(String format);//设置显示的内容,计时器将会显示这个参数所对应的值得,如果字符串的值
//为null,那么返回的值为MM:SS格式的
下面就来介绍一个实例:
package com.example.android.apis.view;

// Need the following import to get access to the app resources, since this
// class is in a sub-package.
import com.example.android.apis.R;

import android.app.Activity;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Chronometer;

public class ChronometerDemo extends Activity {
Chronometer mChronometer;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.chronometer);

Button button;

mChronometer = (Chronometer) findViewById(R.id.chronometer);

// Watch for button clicks.
button = (Button) findViewById(R.id.start);
button.setOnClickListener(mStartListener);//对应的是开始计时

button = (Button) findViewById(R.id.stop);
button.setOnClickListener(mStopListener); //对应的是停止计时

button = (Button) findViewById(R.id.reset);
button.setOnClickListener(mResetListener);//对应的是重新置数

button = (Button) findViewById(R.id.set_format);
button.setOnClickListener(mSetFormatListener);//对应的是设置时间的显示格式

button = (Button) findViewById(R.id.clear_format);
button.setOnClickListener(mClearFormatListener);//对应的是使用非格式的计时显示功能
}

View.OnClickListener mStartListener = new OnClickListener() {
public void onClick(View v) {
mChronometer.start();
}
};

View.OnClickListener mStopListener = new OnClickListener() {
public void onClick(View v) {
mChronometer.stop();
}
};

View.OnClickListener mResetListener = new OnClickListener() {
public void onClick(View v) {
mChronometer.setBase(SystemClock.elapsedRealtime());
}
};

View.OnClickListener mSetFormatListener = new OnClickListener() {
public void onClick(View v) {
mChronometer.setFormat("Formatted time (%s)");
}
};

View.OnClickListener mClearFormatListener = new OnClickListener() {
public void onClick(View v) {
mChronometer.setFormat(null);
}
};
}

I. 安卓 用Handler封装一个计时器,比如穿入20,那么TextView就显示1秒,2秒……10秒

private class MHandler extends Handler{

private int time;
private TextView textView;
private int currenTime;

public MHandler(int time,TextView textView){

this.time = time;
this.textView = textView;
}
@Override
public void handleMessage(Message msg) {
if(currenTime<=time){
textView.setText(currenTime+"秒");
currenTime++;
sendEmptyMessageDelayed(0,1000);
}
}
}

使用new MHandler(20,textView).sendEmptyMessage(0);可以实现需要的需求。

J. Android开发——定时器处理

  开发中经常遇到用计时器的时候,例如:每秒输出一次log,这时候就要用到延时操作,这里总结了几种常用的方法。

   AlarmManager 是Android的全局定时器,可以在指定时间执行定时任务。定时任务通过PendingIntent 的 getActivity()、getService()或 getBroadcast() 来执行。简单的说就是我们设定一个时间,然后在该时间到来时,AlarmManager为我们广播一个我们设定的Intent出来,在接收到设定的Intent时执行定时任务。

(2) setRepeating(int type,long startTime,long intervalTime,PendingIntent pi);
该方法用于设置重复闹钟,其中参数说明如下:
type:闹钟类型
startTime:首次执行闹钟的时间
intervalTime:两次执行闹钟的时间间隔
pi:闹钟响应动作

(3) setInexactRepeating(int type,long startTime,long intervalTime,PendingIntent pi);
该方法也用于设置重复闹钟,与第二个方法相似,区别在于其两次闹钟执行的间隔时间不是固定的。

   AlarmManager实现定时的方法,我还没有用到过,以上内容是在网上查找资料后自己在一个小demo中小小试验了的,有错误或描述不清的地方请见谅。下面是我参考的介绍AlarmManager的三篇文章。

阅读全文

与android计时器代码相关的资料

热点内容
dvd光盘存储汉子算法 浏览:757
苹果邮件无法连接服务器地址 浏览:962
phpffmpeg转码 浏览:671
长沙好玩的解压项目 浏览:142
专属学情分析报告是什么app 浏览:564
php工程部署 浏览:833
android全屏透明 浏览:732
阿里云服务器已开通怎么办 浏览:803
光遇为什么登录时服务器已满 浏览:302
PDF分析 浏览:484
h3c光纤全工半全工设置命令 浏览:141
公司法pdf下载 浏览:381
linuxmarkdown 浏览:350
华为手机怎么多选文件夹 浏览:683
如何取消命令方块指令 浏览:349
风翼app为什么进不去了 浏览:778
im4java压缩图片 浏览:362
数据查询网站源码 浏览:150
伊克塞尔文档怎么进行加密 浏览:892
app转账是什么 浏览:163