導航:首頁 > 操作系統 > 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
光遇為什麼登錄時伺服器已滿 瀏覽:301
PDF分析 瀏覽:484
h3c光纖全工半全工設置命令 瀏覽:141
公司法pdf下載 瀏覽:381
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:890
app轉賬是什麼 瀏覽:163