Android Studio chronometer 时间通过不同的活动
Android Studio chronometer time through different activities
我正在尝试让计时器在不同的活动中保持其时间。我在每个 activity 底部的片段中都有计时器。所以基本上一旦它从 MainActivity 切换到 Corsi,我希望时钟是相同的。
主要活动
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);
}
}
柯西 activity
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();
}
}
发生的事情是,一旦我进入主 activity 时钟从 00:00 开始并开始计数(就像它应该的那样)。但是一旦我切换到 Corsi,它就会获得系统时间 (27:00:..),这不是我想要做的。请帮忙,谢谢。
您应该为此任务启动一个服务。 Subscribe/unsubscribe 到带有回调的活动更新
我正在尝试让计时器在不同的活动中保持其时间。我在每个 activity 底部的片段中都有计时器。所以基本上一旦它从 MainActivity 切换到 Corsi,我希望时钟是相同的。
主要活动
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);
}
}
柯西 activity
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();
}
}
发生的事情是,一旦我进入主 activity 时钟从 00:00 开始并开始计数(就像它应该的那样)。但是一旦我切换到 Corsi,它就会获得系统时间 (27:00:..),这不是我想要做的。请帮忙,谢谢。
您应该为此任务启动一个服务。 Subscribe/unsubscribe 到带有回调的活动更新