Android
 Computer >> コンピューター >  >> プログラミング >> Android

Kotlinで関数の呼び出しを遅延させる方法(Timerとscheduleの使い方)

KotlinはJavaをベースとした言語であるため、Javaのライブラリ関数をそのまま活用して、関数の呼び出しを遅延させることができます。

本記事では、Timer()schedule() というJavaライブラリの関数を使って、指定した時間の経過後に特定の関数を呼び出す方法を解説します。

実装例

import java.util.Timer
import kotlin.concurrent.schedule

fun main(args: Array<String>) {

    // 実行開始地点
    println("Hello world!!")

    // 5秒間の遅延を設定
    Timer().schedule(5000) {

        // 関数を呼び出す
        newMethod()
    }
}

fun newMethod() {
    println("Delayed method call!")
}

コードのポイント

  • Timer():java.utilパッケージに含まれるタイマークラスで、バックグラウンドスレッド上でタスクを実行します。
  • schedule(5000):第1引数にミリ秒単位の遅延時間を指定します。ここでは5000ミリ秒=5秒後に処理が実行されます。
  • kotlin.concurrent.schedule:Kotlin標準ライブラリが提供する拡張関数で、Timerに対して簡潔にタスクを登録できます。

実行結果

上記のコードを実行すると、以下のような出力が得られます。

Hello world!!
Delayed method call!

まず「Hello world!!」が出力され、その5秒後に「Delayed method call!」が出力されることが確認できます。

補足:他の遅延方法について

Timer以外にも、Kotlinでは以下のような方法で処理を遅延させることが可能です。

  • Thread.sleep():現在のスレッドを一時停止させるシンプルな方法ですが、メインスレッドを止めてしまうためUIアプリには不向きです。
  • コルーチンのdelay():Kotlinコルーチンを使用するモダンな手法で、非同期処理の中で安全かつ効率的に遅延を実現できます。

用途や環境に応じて最適な方法を選択しましょう。

  1. 【Android開発】連絡先から電話をかけるアプリの作り方を徹底解説

    はじめにこの記事では、Androidアプリから直接電話をかける機能を実装する方法を、ステップごとにわかりやすく解説します。デバイス内の連絡先を読み込み、リスト形式で表示し、タップした相手に発信できるシンプルなサンプルアプリを作成していきましょう。電話発信には ACTION_CALL インテントを使用し、連絡先の読み取りや発信に必要なパーミッション(権限)のリクエスト処理もあわせて実装します。ステップ1:新規プロジェクトの作成まずはAndroid Studioで新しいプロジェクトを作成します。メニューから「File」→「New Project」を選択し、必要な情報を入力してプロジェクトを作成して

  2. Androidで遅延処理後にメソッドを呼び出す方法【HandlerのpostDelayed活用】

    この記事では、Androidアプリにおいて指定した時間の遅延後にメソッドを呼び出す方法を解説します。HandlerクラスのpostDelayed()メソッドを使うことで、数行のコードで簡単に遅延処理を実装できます。手順1:新規プロジェクトを作成するAndroid Studioで新しいプロジェクトを作成します。メニューから「File」→「New Project」を選択し、必要な項目を入力してプロジェクトを作成しましょう。手順2:レイアウトファイル(res/layout/activity_main.xml)以下のコードをres/layout/activity_main.xmlに追加します。画面中央