CountdownTimer:当用户回到上一个activity时,如何从剩余时间重新开始?

CountdownTimer: How to restart from a remaining time when the user goes back to the previous activity?

我是 Android 的初学者,这可能是一个非常基本的问题。 我正在尝试创建一个 CountDownTimer 来保持两个活动之间的倒计时。用户可以转到 Activity B 并从 Activity B 返回到 Activity A。 而我正在考虑将剩余的时间节省到SharedPreferences。我想知道的是,当用户执行 OnBackPressed 并将当前剩余时间保存到 SharedPreferences 并返回到之前的 activity 时,如何从剩余时间重新开始倒数计时器在之前 activity?

我觉得这个方法应该对你有帮助:

@Override
public void onResume() { // This will be trigger when your activity is created or come to front
    // Load preference
    // Start timer
}

@Override
public void onStop() { // This will be triggered when your activity goes behind or before your activity destroyed.
   // Cancel timer
   // Save preference
}

其实很简单,跟着评论走就可以了。让我知道这是否有帮助

要做到这一点,您必须有一个单独的线程来计算倒计时内容,它将 运行 您所处的所有天气 Activity 1 或另一个 activity。该线程应该更新 activity(检查 activity 是否可见)。要更新 activity 可以有多种方式。

  1. 您可以使用线程并通过广播更新 activity
  2. 您可以使用线程并检查 activity 可见性,如果可见,则相应地进行操作。
  3. 由于您已经在使用共享偏好,您也可以通过共享偏好实现相同的目的。您可以使用 thread/service 并在每个刻度或每秒更新 共享首选项 。当您收到 onResume 回调 activity 时。从 shared preference 取回值并相应地使用它。

希望对您有所帮助。