使用前台服务保持计时器运行

时间:2019-02-28 17:14:53

标签: java android

当我使用前台服务导航到其他活动时,我试图保持计时器运行。

当我单击按钮以启动计时器并启动前台服务时,前台服务正在运行,但是前台服务中没有显示时间,并且当我导航到另一个活动时,计时器重置为00:00。

任何有关我的代码有什么问题或在更改活动时如何使天文钟保持运行的建议,将不胜感激。

public void startChronometer(View v) {

    Chronometer timeElapsed  = findViewById(R.id.chronometer);
    timeElapsed.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener(){
        @Override
        public void onChronometerTick(Chronometer cArg) {
            long time = SystemClock.elapsedRealtime() - cArg.getBase();
            int h   = (int)(time /3600000);
            int m = (int)(time - h*3600000)/60000;
            int s= (int)(time - h*3600000- m*60000)/1000 ;
            String hh = h < 10 ? "0"+h: h+"";
            String mm = m < 10 ? "0"+m: m+"";
            String ss = s < 10 ? "0"+s: s+"";
            cArg.setText(hh+":"+mm+":"+ss);
        }
    });

    long startTime = SystemClock.elapsedRealtime();

    timeElapsed.setBase(startTime);
    timeElapsed.start();

    Intent serviceIntent = new Intent(this, ExampleService.class);
    serviceIntent.putExtra("inputExtra", startTime);

    ContextCompat.startForegroundService(this, serviceIntent);
}

0 个答案:

没有答案