我已经从一个用户遇到Android的天文台表,保留时间状态(并保持在后台计算)
我目前使用天文台的onCreate过程中设置该活动的一次计数的定时器(最初只有当某些启动条件得到满足)。但我需要计时器继续向上计数,直到应用程序及其所有视图都关闭(我有一个“退出”功能来完成此操作)。
问题是,每当我看到另一个选项卡并重新开始活动时,天文台都会重置为零。 (这与oncreate有关,但我不知道周围的方式)
我没有找到一种直观的方式来保存天文台的状态或countup在自己的背景(或可能跟踪在我自己的时间和在不同的时间点更新计时表)
我的一个想法是启动计时器与服务,并让服务继续计数,而现有的活动更新中的textview使用计时表的当前时间计为一个字符串
任何有关此问题的已知方法的深入了解!
这会更加复杂,因为这是一个tabhost中的活动,每次加载视图时,tabhosts都会调用onPause和onResume,因此会破坏生命周期函数。
我对此很熟悉,现在您是否有解决如何坚持天文钟的时间?也许在不同的线程上或者在sharedpreferences中保存时间以后再恢复它的另一种方式 – CQM
通常我会创建一个包含所有运行时变量的单例类。然后添加setter,getters和listeneres到这个值是很容易的,例如一个想要显示当前值的新活动可以在Resume上注册该falure的变化并取消注册onPause,经典的MVC模型 – michael