開発では、一定期間に特定のタスクを実行する必要がある場合があります。たとえば、UIのコントロールは時間の経過とともに変更する必要があります。Java、つまりTimer、Timertaskが提供するタイマーのツールクラスを使用できます。
タイマーは、いくつかの重要な方法を備えた普通のクラスです。 Timertaskは、スレッド内のrun()メソッドと同様の抽象メソッドrun()を備えた抽象クラスです。タイマーを使用してオブジェクトを作成し、このオブジェクトのスケジュールメソッドを使用して、このインターバル操作を完了します。
スケジュールメソッドには3つのパラメーターがあります
最初のパラメーターは、タイプTimertaskのオブジェクトです。 Timertaskを実装するrun()方法は、定期的に実行する必要があるタスクです。
2番目のパラメーターには2つのタイプがあります。 1つ目は長いタイプで、実行を開始するのにかかる時間を示し、もう1つは日付タイプであり、それがその間に実行を開始することを示します。
3番目のパラメーターは、長いタイプの実行サイクルです。
スケジュールメソッドには、2パラメーターの実行過負荷もあります。最初のパラメーターはまだTimertaskであり、2番目のフォームは、実行後に実行される期間を長い間示しています。日付の場合、それは特定の時間後に実行されることを意味します。
タイマーはスレッドであり、スケジュール方法を使用してTimerTaskのスケジューリングを完了します。複数のティマタスクはタイマーを共有できます。つまり、タイマーオブジェクトはスケジュールメソッドを1回呼び出し、スレッドを作成します。スケジュールを一度呼び出した後、Timertaskは無制限にループし、TimerのCancel()を使用して操作を停止します。もちろん、同じタイマーがCancel()メソッドを1回実行した後、すべてのタイマースレッドが終了します。
使用法:
// trueは、このタイマーがデーモンモードで実行されることを意味します(優先度が低く、タイマーはプログラムを終了し、自動的に終了します)java.util.timerタイマー= new java.util.timer(true); timertask task = new timertask(){public void run(){//毎回実行する必要があるコードをここに置きます。 }}; //以下は、タスクをスケジュールするためのいくつかの方法です://時間は日付タイプです:指定された時間に1回実行されますTimer.schedule(タスク、時間); //初めては日付タイプで、期間は長く、初めてからミリ秒ごとに実行されることを示します。 Timer.schedule(タスク、初めて、期間); //遅延はタイプロングです:これからのミリ秒ごとに遅延が実行されます。 Timer.schedule(タスク、遅延); //遅延が長く、期間は長いです。遅延後のミリ秒が今後渡された後、すべてのミリ秒を実行します。 Timer.schedule(タスク、遅延、期間);サンプルコード:
Android.App.Activityをインポートします。 Android.os.bundleをインポートします。 Android.os.handlerをインポートします。 Android.os.messageをインポートします。 java.util.timerをインポートします。 java.util.timertaskをインポートします。パブリッククラスのティマタスカアクティブはアクティビティを拡張します{プライベートタイマーmtimer; @Override Protected void oncreate(bundle savedinstancestate){super.oncreate(savedinstancestate); // initタイマーmtimer = new Timer(); //タイマータスクSittimertask()を開始します。 } @Override Protected void ondestroy(){super.ondestroy(); //キャンセルタイマーmtimer.cancel(); } private void sittimertask(){mtimer.schedule(new timertask(){@override public void run(){message message = new message(); message.what = 1; doactionhandler.sendmessage(message);}}}}、1000、1000/*は、1000 milliseconds、並んでください。 } / ** *いくつかのアクションを実行 * /プライベートハンドラーdoactionHandler = new Handler(){@Override public void handlemessage(message msg){super.handlemessage(msg); int msgid = msg.what; switch(msgid){ケース1://アクションブレイクを実行します。デフォルト:break; }}}; }上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。