Android Studio计时器通过不同活动的时间

问题描述:

我试图让计时器在整个不同活动中保持其时间。我在每个活动的底部都有一个记录片。所以基本上一旦它从MainActivity切换到Corsi,我希望时钟是一样的。Android Studio计时器通过不同活动的时间

MainActivity

public class MainActivity extends AppCompatActivity implements hold_undo_fragment.toggleButtonListener{ 

    Chronometer chronometer; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     //runBeaconDistances(); 
     chronometer = (Chronometer) findViewById(R.id.clock); 
     chronometer.setBase(SystemClock.elapsedRealtime()); 
     chronometer.start(); 
    } 

    public void toCorsi(View view){ 
     Intent myIntent = new Intent(MainActivity.this.getBaseContext(), corsi.class); 
     myIntent.putExtra("time", chronometer.getBase() - SystemClock.elapsedRealtime()); // or thisSystemClock.elapsedRealtime() - chronometer.getBase() but neither works 
     startActivity(myIntent); 

    } 
} 

科希活动

public class corsi extends AppCompatActivity implements hold_undo_fragment.toggleButtonListener { 

    Chronometer chronometer; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_corsi); 
     Bundle timeData = getIntent().getExtras(); 
     if (timeData == null) 
      return;; 
     long millis = timeData.getLong("time"); 

     chronometer = (Chronometer) findViewById(R.id.clock); 
     chronometer.setBase(millis); 
     chronometer.start(); 
    } 
} 

,什么情况是,一旦我进入主活动的时钟从00:00开始,开始计数(如它应该)。但是一旦我切换到Corsi,它就会获得系统时间(27:00:..),这不是我想要做的。请帮忙,谢谢。

您应该为此任务启动一项服务。订阅/取消订阅来自回拨活动的更新