はじめに
IT企業入社3か月目の初学者のアウトプットです。
やりたいこと
Timerを使って、一定間隔で一定の処理を行う
(TimerTaskの内容を繰り返し行う)
手順
様々な書き方があると思いますが本記事ではシンプルな書き方を記述します。
1.Timerオブジェクト作成
val timer = Timer()
2.TimerTaskクラスに繰り返したい処理を記載
private val timerTask = task()
class task : TimerTask() {
override fun run() {
println("hello")
}
}
3.scheduleAtFixedRateメソッドを記載
scheduleAtFixedRate(TimerTask task, long delay, long period)
第1引数:繰り返しを実行するクラス
第2,3引数:Long型
サンプルコード
MainActivity.kt
package com.webserva.wings.android.radio;
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.webserva.wings.android.radio.R.*
import java.util.*
import java.util.Timer
class MainActivity : AppCompatActivity() {
// Timer()のインスタンス生成
val timer = Timer()
private val timerTask = task()
// scheduleAtFixedRateメソッドの引数
private val delay: Long= 0L
private val Long: Long = 5000L
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(layout.activity_main)
timer.scheduleAtFixedRate(timerTask, delay, Long)
}
class task :TimerTask() {
override fun run() {
// 繰り返したい処理
println("hello")
}
}
// Timer()の終了
override fun onStop() {
super.onStop()
timer.cancel()
}
}