android的timertask,Android 中 Timer 和 TimerTask的使用
Android中Timer是一個(gè)普通的類,其中有幾個(gè)重要的方法;而TimerTask則是一個(gè)抽象類,其中含有一個(gè)抽象方法run()。
使用Timer類中的schedule()方法可以完成對(duì)TimerTask的調(diào)度,該方法具有三個(gè)參數(shù),其函數(shù)聲明如下:
public void schedule(TimerTask task, long delay, long period)
其中第一個(gè)參數(shù)為TimerTask的對(duì)象,通過(guò)實(shí)現(xiàn)其中的run()方法可以周期的執(zhí)行某一個(gè)任務(wù);第二個(gè)參數(shù)表示延遲的時(shí)間,即多長(zhǎng)時(shí)間后開(kāi)始執(zhí)行;第三個(gè)參數(shù)表示執(zhí)行的周期。
多個(gè)TimerTask是可以共用一個(gè)Timer的,通過(guò)調(diào)用Timer的schedule方法可以創(chuàng)建一個(gè)線程,并且調(diào)用一次schedule后TimerTask是無(wú)限的循環(huán)下去的,使用Timer的cancel()停止操作。當(dāng)同一個(gè)Timer執(zhí)行一次cancle()方法后,所有Timer線程都被終止。
這里為了驗(yàn)證Timer和TimerTask的用法,舉了一個(gè)案例進(jìn)行驗(yàn)證,其源代碼如下所示:
package com.glemontree.timetaskdemo;
import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends Activity {
private int secondLeft = 6;
private TextView textView;
Timer timer = new Timer();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.texttime);
}
public void begin(View view) {
timer.schedule(task, 1000, 1000);
}
TimerTask task = new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
runOnUiThread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
secondLeft--;
textView.setText("" + secondLeft);
if (secondLeft < 0) {
timer.cancel();
textView.setText("倒計(jì)時(shí)結(jié)束");
}
}
});
}
};
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
上面這段代碼需要注意的是由于改變UI只能在主線程中進(jìn)行,因此調(diào)用了runOnUiThread方法運(yùn)行在主線程。
總結(jié)
以上是生活随笔為你收集整理的android的timertask,Android 中 Timer 和 TimerTask的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 品味30句对爱情的经典认识
- 下一篇: app安卓开发教程!Android组件化