Android'de TimerTask işlevi için belgeleri bulmak için uğraşıyorum. Bir TimerTask kullanarak aralıklarla bir iş parçacığı çalıştırmam gerekiyor, ancak bunun hakkında nasıl bir fikrim yok. Herhangi bir tavsiye veya örnek çok takdir edilecektir.Bir iş parçacığını çalıştırmak için TimerTask'ı nasıl kullanıyorsunuz?
cevap
Timer
kullanıyorsunuz ve TimerTask
'u, schedule
-yöntemlerinden herhangi birini kullanarak zamanladığınız zaman otomatik olarak yeni bir Özet oluşturur.
Örnek: Bu kez o Timer her saniye ait bir Thread myTimerTask
çalıştıran bir Timer oluşturur
Timer t = new Timer();
t.schedule(myTimerTask, 1000L);
.
Böyle bir şey uyguladık ve iyi çalışıyor:
private Timer mTimer1;
private TimerTask mTt1;
private Handler mTimerHandler = new Handler();
private void stopTimer(){
if(mTimer1 != null){
mTimer1.cancel();
mTimer1.purge();
}
}
private void startTimer(){
mTimer1 = new Timer();
mTt1 = new TimerTask() {
public void run() {
mTimerHandler.post(new Runnable() {
public void run(){
//TODO
}
});
}
};
mTimer1.schedule(mTt1, 1, 5000);
}
müthiş cevap ... neden hiçbir upvotes? .... –
Zamanlamada 1 nedir? – Praneeth
Zamanlama, programlanmış 1 TimerTask'ın ilk çalıştırılmasından önceki milisaniye cinsinden süredir. 5000, sonraki yürütme arasında milisaniye cinsinden gecikme miktarıdır. – Cogentleman
Bu zamanlayıcı görev için mükemmel bir örnektir.
Timer timerObj = new Timer();
TimerTask timerTaskObj = new TimerTask() {
public void run() {
//perform your action here
}
};
timerObj.schedule(timerTaskObj, 0, 15000);
Yukarıdaki kod, bir saniye sonra bir kere _only iş parçasında bir "Zamanlayıcı" görevini çalıştırır. Bir saniyede bir görev çalıştırmak için, bu aşırı yüklenmiş 'zamanlama' yöntemini kullanın: 'zamanlama (TimerTask görevi, uzun gecikme, uzun süre). Örneğin, 'timer.schedule (myTimerTask, 1000L, 2000L)', 1 saniyelik ilk gecikme sonrasında her 2 saniyede bir çalışan bir zamanlayıcı oluşturur. İşte [link] yönteminin linki (https://developer.android.com/reference/java/util/Timer.html#schedule (java.util.TimerTask, uzun, uzun)) [bağlantı] –
Bağlantı Yukarıdaki yorumda yanlış biçimlendirildi. İşte [Timer yöntemleri] için düzeltilmiş bağlantıdır (https://developer.android.com/reference/java/util/Timer.html) –