我正在尝试使用Java for Android的一些东西。 我还是Android编程的新手,我还没有在很多时候使用Java,所以我可能会有点生疏。
所以,情况就是这样:我有一个Activity,每次按下按钮,都会创建并启动一个新的CountDownTimer。如果我关闭活动,之前启动的CountDownTimers仍将运行。我需要一种方法来从另一个Activity中恢复对ContDownTimer实例的引用。
我考虑过序列化,但抽象类CountDownTimer似乎没有实现Serializable。 (当我尝试反序列化对象时出错。此外,因为它们正在运行,这意味着它们仍然在堆上,对吧?我只需要一种方法来引用它们。我对这一点感到有点困惑序列化的话题,但那不是重点......或者是它?)
接下来的尝试将成为Android服务,但它们比Serialization更令人困惑,而且由于电池消耗以及CountDownTimers(据我所知)已经运行的事实,它看起来有点像矫枉过正在他们自己的线程(或进程?)上。所以我决定在这里访问,看看我是否正朝着正确的方向前进,然后才开始与服务世界斗争。
答案 0 :(得分:2)
我需要一种方法从另一个Activity中恢复对ContDownTimer实例的引用。
然后他们不应该成为最初的第一个活动的一部分。将它们放在一些中央存储位置。那可能是单身人士或Service
。或者,答案可能是完全转储CountDownTimer
并执行其他操作。由于我们不知道你想要完成什么,很难为你提供好的建议。
我想过序列化
这对于CountDownTimer
来说没有多大意义。
此外,由于它们正在运行,这意味着它们仍然在堆上,对吧?
只要您的流程在您身边。
我对序列化的整个主题感到有点困惑
序列化用于将对象持久保存到磁盘。这对于CountDownTimer
来说没有多大意义。
由于电池消耗
Service
本质上不消耗任何电池。您如何使用服务。
CountDownTimers(据我所知)已经在他们自己的线程(或进程?)上运行
不,他们没有。他们使用主应用程序线程。
所以我决定在这里拜访,看看我是否朝着正确的方向前进
我们无法回答这个问题,因为我们不知道您要实施的是什么。虽然CountDownTimer
可能是您问题的正确解决方案的一部分,但它可能不会,更不用说其余部分。