これは、無能というより無知の問題です。タイマー アプリケーションを構築しようとしていますが、CountDownTimer オブジェクトが目的に対して不正確すぎることがわかりました。したがって、すべての時間単位を刻み、各刻みで何らかのアクションを実行することでタイマーを手動で作成したい (これを手動で処理するため、必ずしもカウントダウンする必要はありません) - 実行する組み込みオブジェクトはありますか?これ (CountDownTimer 以外)、またはスレッド/スリープを使用する必要がありますか?
2 に答える
1
aHandler
とpostDelayed()
メソッドを使用します。正確で使いやすい。ループごとにコールバックを入れ続ける必要がありますが、それは面倒ではなく、必要に応じて間隔を調整できます。
Handler timeThing = new Handler();
Runnable timedWorker = new Runnable {
public void run(){
// Do work
timeThing.postDelayed(this, 10000); // do it again later
}
};
timeThing.postDelayed(timedWorker, 10000);
于 2013-01-18T01:05:35.750 に答える
0
とを使用AsyncTask
しThread.sleep()
ます。
AsyncTask task=new AsyncTask<Void,Void,Void>() {
@Override
protected Void doInBackground(Void... params) {
while (!isCancelled()) {
try {
Thread.sleep(1000);
publishProgress();
} catch (InterruptedException e) {
break;
}
}
return null;
}
@Override
protected void onProgressUpdate(Void... values) {
//do something here
}
};
//task.execute(); to start
//task.cancel(); to stop
NonProgressUpdate()
秒ごとに呼び出されます (この例では 1000)。
于 2013-01-18T01:07:58.710 に答える