是的,可以在一个活动中启动计时器,在另一个活动中停止计时器。下面是一个示例代码:
在第一个活动中启动计时器(MainActivity.java):
public class MainActivity extends AppCompatActivity {
private Timer timer;
private TimerTask timerTask;
private int counter = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 启动计时器
startTimer();
}
private void startTimer() {
timer = new Timer();
timerTask = new TimerTask() {
@Override
public void run() {
counter++;
Log.i("Timer", "Counter: " + counter);
}
};
// 每隔1秒执行一次计时任务
timer.schedule(timerTask, 0, 1000);
}
@Override
protected void onDestroy() {
super.onDestroy();
// 停止计时器
stopTimer();
}
private void stopTimer() {
if (timer != null) {
timer.cancel();
timer = null;
}
}
}
在第二个活动中停止计时器(SecondActivity.java):
public class SecondActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
// 在需要的地方调用停止计时器的方法
stopTimerInMainActivity();
}
private void stopTimerInMainActivity() {
MainActivity mainActivity = (MainActivity) getApplicationContext();
mainActivity.stopTimer();
}
}
在上述代码中,MainActivity中的startTimer()方法会在活动创建时启动计时器,并在活动销毁时停止计时器。而在SecondActivity中的stopTimerInMainActivity()方法会获取MainActivity的实例,并调用其stopTimer()方法,从而停止计时器。请根据你的实际需求进行修改和适配。