【问题标题】:What happens to timer in OnPause onResumeOnPause onResume 中的计时器会发生什么
【发布时间】:2012-07-26 21:59:35
【问题描述】:

我对 android 的生命周期还有些陌生。但是,在我的应用程序中,我有一个每十秒运行一次的计时器。我注意到当屏幕旋转时,应用程序返回主屏幕并崩溃(可能与计时器有关)。有什么想法吗?

【问题讨论】:

  • 如果它崩溃了,它会在 LogCat 中生成红色的日志。如果您希望我们查看崩溃的原因,请发布这些内容。请记住,方向更改会调用所有onPause, onStop, onDestroy, onCreate, onStart, onResume
  • 你每 10 秒在做什么?

标签: android timer cycle


【解决方案1】:

在 onPause 中,您必须停止计时器。阅读您的 logcat 日志以了解详细信息。

【讨论】:

  • 我想过这个问题,但是如果我在这么小的时间窗口内旋转这么多次,它会创建太多的计时器吗?
  • 我建议你在那个时候取消你的计时器,然后在 onResume 上创建一个新的计时器。一旦你删除了对前一个计时器的引用,垃圾收集器应该为你回收它们。
  • 我在考虑这个,但 onResume 发生在 onStart 之后。我是否应该不在 onStart 中创建一个新计时器(当我第一次启动应用程序时),而在 onResume 中创建一个(而不是)。因为如果我将一个放在 onResume 中,onStart 将创建一个计时器,然后 onResume 也会创建一个(或者至少看起来如此)。在我们第一次启动应用程序的情况下,我们总是有 2 个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-04
  • 2012-05-08
  • 1970-01-01
相关资源
最近更新 更多