每x秒更新一次textview以在后台显示通知

时间:2018-09-15 16:16:02

标签: java android

我有这个代码

public void LoadCurrentTime(long time_last) {
    long millis_now = System.currentTimeMillis();
    long time_till = millis_now - time_last;
    String showTime;
    int showHours, showMin, showSec;
    if (time_till > 604800000) {
        showTime = getString(R.string.long_ago);
    } else {
        //long longHours = (time_till / 1000 / 60 / 60);
        //long longMin = (time_till / 1000 / 60 % 60);
        //long longSec = (time_till / 1000 % 60);
        //showHours = (int) longHours;
        //showMin = (int) longMin;
        //showSec = (int) longSec;
        //showTime = String.format("%02d", showHours) + ":" + String.format("%02d", showMin) + ":" + String.format("%02d", showSec);
        // v1.0^
        long longsec = (time_till / 1000) % 60;
        long longmin = (time_till / (1000 * 60)) % 60;
        long longhours = (time_till / (1000 * 60 * 60)) % 24;
        showHours = (int) longhours;
        showMin = (int) longmin;
        showSec = (int) longsec;
        showTime = String.format("%02d", showHours) + ":" + String.format("%02d", showMin) + ":" + String.format("%02d", showSec);

    }
    TextView lastTime = findViewById(R.id.textView4);

我想每秒更新TextView内容并显示通知,但是TextView更新和通知仅在打开应用程序时显示,所以
如何在后台每秒更新TextView并显示通知?

1 个答案:

答案 0 :(得分:0)

您可以将Timer和TimerTask用于重复任务。不要忘记在程序结束时调用timer.cancel()。

    Timer timer = new Timer();
    timer.scheduleAtFixedRate(new TimerTask() {
        @Override
        public void run() {
          //Call your method
          LoadCurrentTime()
        }
    },0, 2000);