Android の Java での Timer と TimerTask の使用法と例を分析する
開発では、特定のタスクを一定の間隔で実行する必要がある場合があります。たとえば、UI 上のコントロールを時間の経過とともに変更する必要がある場合は、Java が提供するタイマー ツール クラス、つまり Timer と TimerTask を使用できます。
Timer は、いくつかの重要なメソッドを備えた通常のクラスですが、TimerTask は、スレッドの run() メソッドに似た抽象メソッド run() を備えた抽象クラスです。このオブジェクトのスケジュール メソッドを使用して、この間隔の操作を完了します。
スケジュール メソッドには 3 つのパラメータがあります
最初のパラメータは、TimerTask 型のオブジェクトです。TimerTask を実装する run() メソッドは、定期的に実行されるタスクです。
2 番目のパラメータには 2 つのタイプがあります。は実行開始までにかかる時間を示すlong型で、もう1つは実行開始までにかかる時間を示すDate型です
3番目のパラメータは実行期間であり、long型です。
スケジュール メソッドには 2 つのパラメーターを持つ実行オーバーロードもあります。最初のパラメーターは依然として TimerTask であり、2 番目のパラメーターは実行にかかる時間を示す Long として表されます。Date の場合は、それを意味します。一定時間後に1回実行されます。
Timer はスレッドです。TimerTask のスケジュールを完了するには、schedule メソッドを使用します。つまり、Timer オブジェクトは、schedule メソッドを 1 回呼び出してスレッドを作成し、スケジュールを 1 回呼び出した後、 TimerTask が無制限のループである場合は、Timer の cancel() を使用して操作を停止します。もちろん、同じ Timer が cancel() メソッドを 1 回実行すると、すべての Timer スレッドが終了します。
使い方
//true 说明这个timer以daemon方式运行(优先级低,程序结束timer也自动结束) java.util.Timer timer = new java.util.Timer(true); TimerTask task = new TimerTask() { public void run() { //每次需要执行的代码放到这里面。 } }; //以下是几种调度task的方法: //time为Date类型:在指定时间执行一次。 timer.schedule(task, time); //firstTime为Date类型,period为long,表示从firstTime时刻开始,每隔period毫秒执行一次。 timer.schedule(task, firstTime, period); //delay 为long类型:从现在起过delay毫秒执行一次。 timer.schedule(task, delay); //delay为long,period为long:从现在起过delay毫秒以后,每隔period毫秒执行一次。 timer.schedule(task, delay, period);
サンプルコード:
import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import java.util.Timer; import java.util.TimerTask; public class TimerTaskActivity extends Activity { private Timer mTimer; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // init timer mTimer = new Timer(); // start timer task setTimerTask(); } @Override protected void onDestroy() { super.onDestroy(); // cancel timer mTimer.cancel(); } private void setTimerTask() { mTimer.schedule(new TimerTask() { @Override public void run() { Message message = new Message(); message.what = 1; doActionHandler.sendMessage(message); } }, 1000, 1000/* 表示1000毫秒之後,每隔1000毫秒執行一次 */); } /** * do some action */ private Handler doActionHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); int msgId = msg.what; switch (msgId) { case 1: // do some action break; default: break; } } }; }
以上がこの記事の全内容です。皆様の学習に役立つことを願っております。また、皆様も PHP 中国語 Web サイトに参加していただければ幸いです。
Android の Java での Timer と TimerTask の使用法と例を分析した記事をさらに詳しく知りたい場合は、PHP 中国語 Web サイトに注目してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。
