gpt4 book ai didi

java - Android Studio 通过不同的 Activity 计时

转载 作者:行者123 更新时间:2023-12-01 09:43:50 25 4
gpt4 key购买 nike

我正在尝试让天文钟在不同的 Activity 中保持其时间。我将计时器放在每个 Activity 底部的片段中。所以基本上一旦它从 MainActivity 切换到 Corsi 我希望时钟是相同的。

主要 Activity

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:..),这不是我想要做的。请帮忙,谢谢。

最佳答案

您应该为此任务启动一个服务。使用回调订阅/取消订阅 Activity 更新

关于java - Android Studio 通过不同的 Activity 计时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38233287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com