如何启动和停止定期后台任务?

时间:2019-11-21 09:05:06

标签: android

我需要有关android后台任务和计划的帮助。

我想通过切换带有onClick事件的标志来执行和销毁定期的后台任务。后台任务应每秒读取 BLE RSSI 并进行烤面包。

阅读并显示RSSI没问题。

如果有人可以举一个例子说明这一点,那将非常有帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用Handler运行定期任务:

private val handler = Handler()
private val rssiTask: Runnable = object : Runnable {
    override fun run() {
        readRssi()
        handler.postDelayed(this, period)
    }
}
private val period = TimeUnit.SECONDS.toMillis(1)

fun start() {
    handler.postDelayed(rssiTask, period)
}

fun stop() {
    handler.removeCallbacks(rssiTask)
}

或使用Java:

private Handler handler = new Handler();
private Runnable rssiTask = new Runnable {
    public void run() {
        readRssi();
        handler.postDelayed(this, period);
    }
};
private long period = TimeUnit.SECONDS.toMillis(1);

public void start() {
    handler.postDelayed(rssiTask, period);
}

public void stop() {
    handler.removeCallbacks(rssiTask);
}